我有一个字符串: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);
答案 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);