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 に答える