我有一个命名查询来搜索客户名称,如下所示。这目前正在匹配其名称在其名称的任何部分具有指定搜索条件的所有客户(相当于 %search%)。
“SELECT t FROM Customer t WHERE t.name like :search”
如何指定命名查询,使其仅将名称的开头与使用命名查询指定的条件匹配?
问候,
我有一个命名查询来搜索客户名称,如下所示。这目前正在匹配其名称在其名称的任何部分具有指定搜索条件的所有客户(相当于 %search%)。
“SELECT t FROM Customer t WHERE t.name like :search”
如何指定命名查询,使其仅将名称的开头与使用命名查询指定的条件匹配?
问候,
你可以这样做。只需将%符号附加到要搜索的关键字的开头或结尾(取决于您的要求)。
query.setParameter("search", searchKeyword+"%"); // Searches for words starting with searchKeyword
SELECT t FROM Customer t WHERE t.name like :search
并将参数设置为
query.setParameter("search", value + "%" )