JPA / JPQLクエリのwhere句の文字列リストID

DCS

私が@Entity好きだと言う

class C {
  List<String> sequence;
}

そしてC、与えられたリストに完全に一致するインスタンスを照会したいと思います(これは順序に依存することを認識しており、問題ありません。)EclipseLinkを使用し、JPQLでクエリを実行しています。

私は明白なことを試みました:

List<String> querySeq = ... // some list to be used in the where clause
em.createQuery("select c from C c where c.sequence = :qs", C.class)
            .setParameter("qs", querySeq);

を使用してクエリを実行しようとすると、これは失敗しますgetResultList()エラーはjava.sql.SQLSyntaxErrorException: row column count mismatchです。

私も試してみましたjoin

select c from C c join c.sequence s where s in :qs

しかし、これも失敗します。これについてのThe collection-valued path 'c.sequence' must resolve to an association field.私の解釈はjoin、プリミティブのコレクションでは機能せず、リレーションでのみ機能するということです。

だから私の質問は:

これを行う正しい方法は何ですか?

また、(集合)共通部分、和集合、または差分のクエリなど、プリミティブコレクションに対してより複雑な操作を実行する方法はありますか?

ZakiMak

JPQLを使用してリストを直接比較できるソリューションや記事は見つかりませんでした。ただし、値がコレクションのメンバーであるかどうかをテストできるメカニズムがあります

プロセスは洗練されていませんが、少し調整することで、これに似たクエリを作成できます(コードをテストできませんでしたが、アイデアを表しており、論理的に機能するはずです)。

String query = "SELECT c FROM C c";
String checkValue = "";

for(int i = 0; i<queryString.size();i++){

    checkValue = queryString.get(i);

    if(i==queryString.size()-1){
        query += " WHERE '" + checkValue + "'" + " MEMBER OF c.sequence";
    }else{
        query += " WHERE '" + checkValue + "'" + " MEMBER OF c.sequence AND";
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JPAクエリへのIN句リストの追加

分類Dev

MySQL から JPA/JPQL へのクエリ

分類Dev

Hibernate / JPAで生成されたUPDATEクエリのWhere句に追加の列を含める

分類Dev

Spring JPAおよびHibernateでのJPQLクエリエラー

分類Dev

JPA:JPQLのJOIN

分類Dev

任意のAND句を使用した動的Spring Data JPAリポジトリクエリ

分類Dev

Spring Data JPAリポジトリ:派生クエリのIN句が機能しない

分類Dev

Spring Data JPAリポジトリ:派生クエリのIN句が機能しない

分類Dev

Spring Data JPA(JPQL)の問題:JPAクエリでTIMESTAMPDIFF関数を使用する

分類Dev

このjdbcクエリをJPA(JPQL)に変換する方法

分類Dev

結合句のない1対多のJPAクエリ

分類Dev

JPAクエリでのGROUPBY / HAVING句の使用

分類Dev

JPA基準クエリの「having」句で「case ... when ... then ... else ... end」コンストラクトを使用する

分類Dev

クエリ間のmongo jpa

分類Dev

JPA内の名前付きクエリ文字列を取得する

分類Dev

JPAのHibernateクエリヒント

分類Dev

where句を使用したJPA選択クエリ

分類Dev

count * JPA基準クエリを使用したwhere句

分類Dev

JPAの日付リストからクエリする方法は?

分類Dev

JPAリポジトリを使用したSpring Bootの静的なWhere句

分類Dev

JPQL-JPAエンティティのコレクションメンバー内のすべてのアイテムのリスト

分類Dev

JPAとJPQLクエリの1対多の関係を組み合わせたクエリの作成

分類Dev

JPAクエリ数

分類Dev

動的JPAクエリ

分類Dev

ネストされたセットのJPA基準クエリ

分類Dev

Spring MVC:カスタムクエリのjpaリポジトリエラー

分類Dev

JPA JPQLは、データベースまたは永続コンテキストからのクエリ読み取りを選択しますか?

分類Dev

春のJPAがAPIリクエストに投稿する

分類Dev

春のJPAがAPIリクエストに投稿する

Related 関連記事

  1. 1

    JPAクエリへのIN句リストの追加

  2. 2

    MySQL から JPA/JPQL へのクエリ

  3. 3

    Hibernate / JPAで生成されたUPDATEクエリのWhere句に追加の列を含める

  4. 4

    Spring JPAおよびHibernateでのJPQLクエリエラー

  5. 5

    JPA:JPQLのJOIN

  6. 6

    任意のAND句を使用した動的Spring Data JPAリポジトリクエリ

  7. 7

    Spring Data JPAリポジトリ:派生クエリのIN句が機能しない

  8. 8

    Spring Data JPAリポジトリ:派生クエリのIN句が機能しない

  9. 9

    Spring Data JPA(JPQL)の問題:JPAクエリでTIMESTAMPDIFF関数を使用する

  10. 10

    このjdbcクエリをJPA(JPQL)に変換する方法

  11. 11

    結合句のない1対多のJPAクエリ

  12. 12

    JPAクエリでのGROUPBY / HAVING句の使用

  13. 13

    JPA基準クエリの「having」句で「case ... when ... then ... else ... end」コンストラクトを使用する

  14. 14

    クエリ間のmongo jpa

  15. 15

    JPA内の名前付きクエリ文字列を取得する

  16. 16

    JPAのHibernateクエリヒント

  17. 17

    where句を使用したJPA選択クエリ

  18. 18

    count * JPA基準クエリを使用したwhere句

  19. 19

    JPAの日付リストからクエリする方法は?

  20. 20

    JPAリポジトリを使用したSpring Bootの静的なWhere句

  21. 21

    JPQL-JPAエンティティのコレクションメンバー内のすべてのアイテムのリスト

  22. 22

    JPAとJPQLクエリの1対多の関係を組み合わせたクエリの作成

  23. 23

    JPAクエリ数

  24. 24

    動的JPAクエリ

  25. 25

    ネストされたセットのJPA基準クエリ

  26. 26

    Spring MVC:カスタムクエリのjpaリポジトリエラー

  27. 27

    JPA JPQLは、データベースまたは永続コンテキストからのクエリ読み取りを選択しますか?

  28. 28

    春のJPAがAPIリクエストに投稿する

  29. 29

    春のJPAがAPIリクエストに投稿する

ホットタグ

アーカイブ