@NamedQuery - MySQL - 喜欢

时间:2012-07-10 14:22:51

标签: mysql jpa

我当前的查询如下所示:

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

有人帮我吗?

1 个答案:

答案 0 :(得分:0)

JPA不支持JPQL中的REGEXP。因此,您可以使用LIKE和OR,或使用本机SQL查询。

如果您使用的是EclipseLink,则JPQL支持REGEXP。

请参阅, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Functions