java - 使用 Hibernate 将字符串传递到 CriteriaBuilder.equal 方法的 String<Expression> 中

标签 java hibernate

我有一个字符串: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/

相关文章:

java - 阻止 Hibernate 尝试从数据库中获取计算字段

java - Hibernate中热切获取是什么意思

java - 从 SQLProjection 中引用外部条件查询别名

Java Hibernate 转换器 AliasToBeanNestedResultTransformer

java - hibernate : Class is not mapped

java - 为什么远程服务器上的签名验证比设备上的签名验证更安全?

java - OOP 中的对象数组

java - Xerces - XmlString 到 Dom 对象

java - 单个浏览器中的多个 session

java - 有没有办法向下转型 GWT AutoBean?