Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menggunakan parameter dinamis dalam klausa IN dari kueri bernama JPA?

JPA mendukung penggunaan koleksi sebagai parameter literal daftar hanya dalam kueri JPQL, bukan dalam kueri asli. Beberapa penyedia JPA mendukungnya sebagai fitur berpemilik, tetapi itu bukan bagian dari spesifikasi JPA (lihat https://stackoverflow.com/a/3145275/1285097).

Parameter bernama dalam kueri asli juga bukan bagian dari spesifikasi JPA. Perilaku mereka tergantung pada penyedia ketekunan dan/atau driver JDBC.

Hibernasi dengan driver JDBC untuk Oracle mendukung kedua fitur ini.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mematikan pernyataan SELECT yang sedang berjalan

  2. RAWTOHEX() Fungsi di Oracle

  3. ORA-06508:PL/SQL:tidak dapat menemukan unit program yang dipanggil

  4. Dokumentasi MAA untuk Oracle Cloud

  5. Bagaimana cara mempercantik output yang berasal dari kueri SELECT di command prompt?