sql >> Databáze >  >> RDS >> Oracle

Jak použít dynamický parametr v klauzuli IN dotazu s názvem JPA?

JPA podporuje použití kolekce jako parametru doslovného seznamu pouze v dotazech JPQL, nikoli v nativních dotazech. Někteří poskytovatelé JPA ji podporují jako proprietární funkci, ale není součástí specifikace JPA (viz https://stackoverflow.com/a/3145275/1285097).

Pojmenované parametry v nativních dotazech také nejsou součástí specifikace JPA. Jejich chování závisí na poskytovateli perzistence a/nebo ovladači JDBC.

Hibernace s ovladačem JDBC pro Oracle podporuje obě tyto funkce.

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. Jak migrovat MySQL z Amazon EC2 do vašeho On-Prem Data Center bez výpadků

  2. Jak mohu serializovat velký graf objektu .NET do objektu SQL Server BLOB bez vytvoření velké vyrovnávací paměti?

  3. PostgreSQL array_agg pořadí

  4. zadáním správného uživatelského jména a hesla získáte ORA-01017:neplatné uživatelské jméno/heslo; přihlášení odepřeno