我当前的查询如下所示:
SELECT * FROM piece p WHERE p.code LIKE '%1740%' OR p.code LIKE '%1938%'
我做了一些环顾四周,找不到任何类似于LIKE IN()的内容:
SELECT * FROM piece p WHERE p.code LIKE IN('%1740 %', '%1938 %')
在MySQL中,我可以这样做:
SELECT * FROM piece p WHERE code REGEXP '1740|1938'
但我不能将它与@NamedQuery一起使用。
KO : select p from piece p where p.code REGEXP :code
incomplete : select p from piece p where p.code in :code
有人帮我吗?
答案 0 :(得分:0)
JPA不支持JPQL中的REGEXP。因此,您可以使用LIKE和OR,或使用本机SQL查询。
如果您使用的是EclipseLink,则JPQL支持REGEXP。
请参阅, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Functions