Java命名查询
我正在尝试创建一个Java命名查询,该查询执行以下postgres查询:Java命名查询,java,jpql,named,Java,Jpql,Named,我正在尝试创建一个Java命名查询,该查询执行以下postgres查询: select * from call_attempt where result is NULL and id like '0000000101%'; 0000000 101在我的代码中被设置为id,所以这是我想要做的,但它的格式不正确:(我不知道如何在使用%时设置id字段,它必须在“”中) 首先,您忘记了和,并将其替换为逗号 其次,%必须作为参数的一部分传递: SELECT ae FROM AttemptEntity a
select * from call_attempt where result is NULL and id like '0000000101%';
0000000 101在我的代码中被设置为id,所以这是我想要做的,但它的格式不正确:(我不知道如何在使用%时设置id字段,它必须在“”中)
首先,您忘记了
和
,并将其替换为逗号
其次,%
必须作为参数的一部分传递:
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之后添加和删除逗号
引用:WHERE子句中有一个逗号,并且缺少一个
和
。这仍然是说@NamedQuery(name=AttemptEntity.JQL.NOTENDED,query=“SELECT ae FROM AttemptEntity ae WHERE ae.result为NULL,”+”和ae.correlationId LIKE:id)结尾格式错误,删除空后的逗号。我删除了空后的逗号,现在看起来还可以。谢谢
query.setParamter("id", 0000000101+ "%");