Java 命名查询

标签 java jpql named

我正在尝试创建一个 Java 命名查询,它执行以下 postgres 查询:

select * from call_attempt where result is NULL and id like '0000000101%';

我的代码中将 0000000101 设置为 id,所以这就是我想要做的,但格式不正确:(我不确定如何在使用 % 时设置 id 字段,它必须在 ' ' )

@NamedQuery(name = AttemptEntity.JQL.NOTENDED,
                       query = "SELECT ae FROM AttemptEntity ae WHERE ae.result IS NULL,"
                             + " ae.correlationId LIKE '=:id%'")

最佳答案

首先,您忘记了,并用逗号代替了它。

其次,% 必须作为参数的一部分传递:

SELECT ae FROM AttemptEntity ae WHERE ae.result IS NULL
and ae.correlationId LIKE :id

然后,在执行查询时:

String id = "0000000101%";
query.setParameter("id", id);

关于Java 命名查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44185092/

相关文章:

java - 从数据库表中随机选择实体?

java - 让 JTextField 自动调整大小

java - XPath 2.0 中的函数 Reverse() : how can use it to evaluate an expression?

java - 仅将 ArrayList 作为值而不是引用传递

jakarta-ee - 左右表达式类型必须是同一类型 - JPQL

Excel:使用 VBA 命名范围

java - 如何将 android studio 中的模块(不是项目)链接到 firebase?它与将应用程序链接到 firebase 有什么不同?

java - JPQL 查询非相关实体的存储库

linux - mode_t 0760 是什么意思?

用于更新 Bind9 DNS 的 C++ 程序