spring data jpa 1.4.3 con Oracle 11g.La query con nome JPA corrisponde a una lista di tuple nella clausola IN
devo un'entità simili:
class LinkRecord {
String value;
int linkType;
...
}
sto usando (valore, LINKTYPE) come indice composito. Per un determinato elenco di tuple (v, t), è necessario selezionare tutti i record nel DB in modo che value = v, linkType = t.
Fondamentalmente, voglio costruire questa query:
SELECT * FROM LINK_RECORD WHERE (VALUE, LINK_TYPE) IN (('value1', 0), ('value2', 25), ...)
in cui la lista nella clausola IN viene passato come parametro.
Poiché stiamo lavorando con un grande volume di dati, sarebbe molto indesiderabile interrogare le tuple una alla volta.
Nel mio repository Ho provato questo:
@Query("select r from LinkRecord r where (r.value, r.linkType) in :keys")
List<LinkRecord> findByValueAndType(@Param("keys")List<List<Object>> keys);
in cui le chiavi è una lista di liste di lunghezza (2). Questo mi fa ORA_00920: operatore relazionale non valido.
C'è un modo per rendere questo lavoro utilizzando una query denominata? O devo ricorrere a sql nativo?
Grazie per il vostro aiuto.