sql >> データベース >  >> RDS >> Oracle

クエリという名前のJPAのIN句で動的パラメータを使用するにはどうすればよいですか?

    JPAは、ネイティブクエリではなく、JPQLクエリでのみリストリテラルパラメータとしてのコレクションの使用をサポートします。一部のJPAプロバイダーは独自の機能としてサポートしていますが、JPA仕様の一部ではありません(https://stackoverflow.com/a/3145275/1285097を参照)。

    ネイティブクエリの名前付きパラメータもJPA仕様の一部ではありません。それらの動作は、永続性プロバイダーやJDBCドライバーによって異なります。

    Oracle用のJDBCドライバーでHibernateは、これらの機能の両方をサポートします。

    List<String> selectedValues = Arrays.asList("STRING1", "STRING2");
    final String parameterizedQuery = "select * from SOMETABLE where SOMEFIELD in (:selectedValues)";
    return em.createNativeQuery(parameterizedQuery)
             .setParameter("selectedValues", selectedValues)
             .getResultList();
    


    1. SQLとは何ですか?

    2. MariaDBでREPLACE()がどのように機能するか

    3. Apache2、PHP5、およびMySQL4を使用してWindows XPにWebサーバーをインストールする–パート1

    4. SQL Server:oracle keepdensity_rankクエリを模倣する方法は?