使用like语句澄清javax持久性命名查询

时间:2013-09-27 06:52:31

标签: java persistence

我有一个命名查询来搜索客户名称,如下所示。目前,该名称在名称的任何部分(相当于%search%)中匹配名称具有指定搜索条件的所有客户。

“SELECT t FROM Customer t WHERE t.name like:search”

如何指定命名查询,使其仅使用命名查询指定的条件匹配名称的开头?

此致

2 个答案:

答案 0 :(得分:3)

你可以这样做。只需将符号附加到要搜索的关键字的开头或结尾(取决于您的要求)。

query.setParameter("search", searchKeyword+"%"); // Searches for words starting with searchKeyword

答案 1 :(得分:1)

SELECT t FROM Customer t WHERE t.name like :search

并将参数设置为

query.setParameter("search", value + "%" )