使用Hibernate </expression>将String传递给String <expression>以获取CriteriaBuilder.equal方法

时间:2014-12-19 00:34:57

标签: java hibernate

我有一个字符串:tmNumber,我需要将tmNumber传递给以下方法:

CriteriaBuilder.equal(Expression<String>.Expression<String>) 

但我无法弄清楚如何将tmNumber字符串解析为Expression。

为简单起见,我删除了许多与问题无关的代码。假设这是在一个传递了一个名为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);

1 个答案:

答案 0 :(得分:1)

CriteriaBuilder还提供了CriteriaBuilder#equal(Expression<?>, java.lang.Object)javadoc here),它可以将Expression<String>作为第一个参数,然后将您的字符串tmNumber作为第二个参数。

这意味着你所拥有的东西几乎可以工作,只需稍加修改:

Expression<String> currentTm = trainingEntryRoot.get("tmnumber");
Predicate tmNumberPred = builder.equal(currentTm, tmNumber);