Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 如何在JPQL中定义命名参数?_Jpa - Fatal编程技术网

Jpa 如何在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",

我想编写一个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", "["+bar+"]%");

我会说:使用查询创建查询对象:

SELECT f FROM Foo f WHERE f.bar LIKE :bar
然后通过调用

query.setParameter("bar", "["+bar+"]%");

所以您的答案是,实际上,您不能在JPQL中定义命名参数?确保我理解。根据我给出的示例,到目前为止我看到的所有使用JPQL和通配符的示例都将通配符作为参数值的一部分引入。当然,您可以在JPQL中使用通配符,但只能作为常量表达式使用,而不能附加到参数?确保我理解。根据我给出的示例,到目前为止我看到的所有使用JPQL和通配符的示例都将通配符作为参数值的一部分引入。当然,您可以在JPQL中使用通配符,但只能作为常量表达式使用,不能附加到参数。