Jpa 如何在JPQL中定义命名参数?
我想编写一个JPQL查询,如下所示:Jpa 如何在JPQL中定义命名参数?,jpa,Jpa,我想编写一个JPQL查询,如下所示: SELECT f FROM Foo f WHERE f.bar LIKE '[:bar]%' EclipseLink无法正确解析这一点,它无法确定尾随的]%实际上不是命名参数名称的一部分 我知道ESCAPE关键字,但我不确定这是否能解决我的问题。我的规范认可的选项是什么?我会说:使用查询创建查询对象: SELECT f FROM Foo f WHERE f.bar LIKE :bar 然后通过调用 query.setParameter("bar",
SELECT f
FROM Foo f
WHERE f.bar LIKE '[:bar]%'
EclipseLink无法正确解析这一点,它无法确定尾随的]%
实际上不是命名参数名称的一部分
我知道
ESCAPE
关键字,但我不确定这是否能解决我的问题。我的规范认可的选项是什么?我会说:使用查询创建查询对象:
SELECT f FROM Foo f WHERE f.bar LIKE :bar
然后通过调用
query.setParameter("bar", "["+bar+"]%");
我会说:使用查询创建查询对象:
SELECT f FROM Foo f WHERE f.bar LIKE :bar
然后通过调用
query.setParameter("bar", "["+bar+"]%");
所以您的答案是,实际上,您不能在JPQL中定义命名参数?确保我理解。根据我给出的示例,到目前为止我看到的所有使用JPQL和通配符的示例都将通配符作为参数值的一部分引入。当然,您可以在JPQL中使用通配符,但只能作为常量表达式使用,而不能附加到参数?确保我理解。根据我给出的示例,到目前为止我看到的所有使用JPQL和通配符的示例都将通配符作为参数值的一部分引入。当然,您可以在JPQL中使用通配符,但只能作为常量表达式使用,不能附加到参数。