Java 命名查询
Java Named Query
我正在尝试创建一个 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%'")
首先,您忘记了 and
,并用逗号代替。
其次,%
必须作为参数的一部分传递:
SELECT ae FROM AttemptEntity ae WHERE ae.result IS NULL
and ae.correlationId LIKE :id
然后,在执行查询时:
String id = "0000000101%";
query.setParameter("id", id);
您不能在 NamedQuery 中使用 %,但可以在您分配给参数的值中使用它。
query.setParamter("id", 0000000101+ "%");
您还需要在 NULL 后添加 AND 并删除逗号。
参考:Named Query with like in where clause
我正在尝试创建一个 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%'")
首先,您忘记了 and
,并用逗号代替。
其次,%
必须作为参数的一部分传递:
SELECT ae FROM AttemptEntity ae WHERE ae.result IS NULL
and ae.correlationId LIKE :id
然后,在执行查询时:
String id = "0000000101%";
query.setParameter("id", id);
您不能在 NamedQuery 中使用 %,但可以在您分配给参数的值中使用它。
query.setParamter("id", 0000000101+ "%");
您还需要在 NULL 后添加 AND 并删除逗号。
参考:Named Query with like in where clause