我有一个字符串:tmNumber,我需要将 tmNumber 传递到以下方法中:
CriteriaBuilder.equal(Expression<String>.Expression<String>)
但我不知道如何将 tmNumber 字符串解析为表达式。
为了简单起见,我删除了许多与问题无关的代码。假设这是一个已传递名为 tmNumber 的字符串的方法内
Expression<String> currentTm = trainingEntryRoot.get("tmnumber");
Expression<String> passedTmNumber = tmNumber; //tmNumber is a string I need to parse to Expression<String>, but how?
Predicate tmNumberPred = builder.equal(passedTmNumber, currentTm);
最佳答案
CriteriaBuilder 还提供 CriteriaBuilder#equal(Expression<?>, java.lang.Object)
( javadoc here ) 可以采取 Expression<String>
作为第一个参数,然后是您的字符串 tmNumber
作为第二个参数。
这意味着您所拥有的几乎可以工作,只需稍作修改:
Expression<String> currentTm = trainingEntryRoot.get("tmnumber");
Predicate tmNumberPred = builder.equal(currentTm, tmNumber);
关于java - 使用 Hibernate 将字符串传递到 CriteriaBuilder.equal 方法的 String<Expression> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27558124/