Nella seguente query JPA, i: fcIds nome parametro deve essere un elenco di valori interi:List come un parametro denominato nella query JPA utilizzando TopLink
@NamedQuery(name = "SortTypeNWD.findByFcIds", query = "SELECT s FROM SortTypeNWD s WHERE s.sortTypeNWDPK.fcId IN (:fcIds)")
Logicamente, questo è ciò che viene fatto quando la La query denominata è denominata:
Query findByDatesPlFcIds = em.createNamedQuery("SortTypeNWD.findByFcIds");
findByDatesPlFcIds.setParameter("fcIds", fcIds);
Dove la variabile fcIds è un oggetto ArrayList contenente numeri interi.
Tutto il codice qui sopra funziona bene con Hibernate, ma non lo fa con TopLink:
Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.ArrayList for parameter fcIds with expected type of int from query string SELECT s FROM SortTypeNWD s WHERE s.sortTypeNWDPK.fcId IN (:fcIds).
Esiste una soluzione per utilizzare una lista come parametro denominato in TopLink? Il tipo del parametro denominato può essere forzato?
Chi ha idea chiara di includere questo in Query denominate e non in NativeNamedQueries? Stavo cercando per due ore cercando di capire perché la mia query non avrebbe funzionato. – SoftwareSavant