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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将String传递给String 对于使用Hibernate的CriteriaBuilder.equal方法相关的知识,希望对你有一定的参考价值。

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

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);

以上是关于将String传递给String 对于使用Hibernate的CriteriaBuilder.equal方法的主要内容,如果未能解决你的问题,请参考以下文章

将 javascript 字符串传递给 std::string 打印垃圾值

将 std::string_view 传递给执行 const std::string& 的 API

如何将变量从模型传递给 render_to_string?

如何将 std::string 传递给需要 char* 的函数? [复制]

如何将 std::string 环境块传递给 CreateProcess?

无法将道具从父组件传递给子组件