Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak używać parametru dynamicznego w klauzuli IN zapytania o nazwie JPA?

JPA obsługuje użycie kolekcji jako parametru literału listy tylko w zapytaniach JPQL, a nie w zapytaniach natywnych. Niektórzy dostawcy JPA obsługują ją jako zastrzeżoną funkcję, ale nie jest ona częścią specyfikacji JPA (patrz https://stackoverflow.com/a/3145275/1285097).

Nazwane parametry w zapytaniach natywnych również nie są częścią specyfikacji JPA. Ich zachowanie zależy od dostawcy trwałości i/lub sterownika JDBC.

Hibernacja ze sterownikiem JDBC dla Oracle obsługuje obie te funkcje.

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. Dynamiczny obrót w Oracle sql

  2. Pobierz listę wszystkich tabel w Oracle?

  3. Narzędzia do pracy z procedurami składowanymi w Oracle, w zespole?

  4. Wiersze Oracle Delete zgodne z wieloma wartościami

  5. Jak debugować ORA-01775:zapętlenie łańcucha synonimów?