在我的ejb-jar.xml
中 <query>
<query-method>
<method-name>findByCaName</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql>SELECT OBJECT(c) FROM Categories AS c WHERE c.caName LIKE ?1</ejb-ql>
</query>
当我搜索时,例如“动作”,结果是正确的,但是当我尝试找到“Acti”时,它返回了一个空集合,任何人都可以告诉我我错在哪里?
谢谢
答案 0 :(得分:3)
通常您必须在类似字符串中指定通配符,例如“Acti%”或“%cti%”
答案 1 :(得分:1)
如何在参数中添加%:
CONCAT(?1, '%')
答案 2 :(得分:0)
让您的参数为字符串,然后将'%' or '_'
附加为前缀或后缀。 '_'表示单个字符变体,'%'表示多个字符变体。
但最酷的方法是让用户[在搜索功能中]输入%或_ in然后将其传递给查询。这提供了巨大的优势和灵活性。