将String传递给String 对于使用Hibernate的CriteriaBuilder.equal方法

问题描述 投票:0回答:1

我有一个字符串: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);
java hibernate
1个回答
1
投票

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

这意味着你几乎可以工作,只需稍加修改:

Expression<String> currentTm = trainingEntryRoot.get("tmnumber");
Predicate tmNumberPred = builder.equal(currentTm, tmNumber);
© www.soinside.com 2019 - 2024. All rights reserved.