sql >> Database teknologi >  >> RDS >> Oracle

Hvordan bruger man en dynamisk parameter i en IN-klausul i en JPA-navngivet forespørgsel?

JPA understøtter kun brugen af ​​en samling som en listeparameter i JPQL-forespørgsler, ikke i indbyggede forespørgsler. Nogle JPA-udbydere understøtter det som en proprietær funktion, men det er ikke en del af JPA-specifikationen (se https://stackoverflow.com/a/3145275/1285097).

Navngivne parametre i indbyggede forespørgsler er heller ikke en del af JPA-specifikationen. Deres adfærd afhænger af persistensudbyderen og/eller JDBC-driveren.

Gå i dvale med JDBC-driveren til Oracle understøtter begge disse funktioner.

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. Importer 'xml' til SQL Server

  2. Finde samtidige hændelser i en database mellem tidspunkter

  3. Microsoft SQL Server 2005/2008:XML vs tekst/varchar datatype

  4. PostgreSQL 13:Lad ikke slots dræbe din primære