w następującej kwerendzie WZP, że: fcIds nazwany parametr musi być listą wartości:Lista jako nazwany parametr w WZP kwerendy przy użyciu TopLink
@NamedQuery(name = "SortTypeNWD.findByFcIds", query = "SELECT s FROM SortTypeNWD s WHERE s.sortTypeNWDPK.fcId IN (:fcIds)")
Całkiem logicznie, to co dzieje się, gdy nazwane zapytanie nazywa się:
Query findByDatesPlFcIds = em.createNamedQuery("SortTypeNWD.findByFcIds");
findByDatesPlFcIds.setParameter("fcIds", fcIds);
Gdzie zmienna fcIds jest liczbą całkowitą ArrayList.
Wszystkie wyżej kod działa poprawnie z Hibernate, ale nie robi z 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).
Czy istnieje obejście użyć listy jako parametru nazwanego w TopLink? Czy można wymusić typ określonego parametru?
Kto jest świetnym pomysłem, aby włączyć to do nazwanych zapytań, a nie NativeNamedQueries? Szukałem dwóch godzin, próbując zrozumieć, dlaczego moje zapytanie nie zadziałało. – SoftwareSavant