0

我当前的查询如下所示:

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

有人帮我吗?

4

1 回答 1

0

JPA 不支持 JPQL 中的 REGEXP。所以你可以使用 LIKE 和 OR,或者使用原生 SQL 查询。

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

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

于 2012-07-11T15:42:33.320 回答