I got this code with a little help from chattgpt. But it is not working. It always say it needs a int:
Exception in thread "main" java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.Arrays$ArrayList for parameter list with expected type of int from query string SELECT s.studygroupid FROM SubjectStudyGroup s WHERE s.subjectid IN (:list). at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:946) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:609) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:69) at Testen.Testen.main(Testen.java:27)
Can you explain why it does not take the list-paramter or how he will accept the parameter.
private static EntityManager em = null;
private static EntityManagerFactory emf = null;
public static void main(String[] args) throws SQLException, ClassNotFoundException {
open();
List<Integer> subjectIds = Arrays.asList(1, 2, 3);
Query query = em.createQuery("SELECT s.studygroupid FROM SubjectStudyGroup s WHERE s.subjectid IN (:list)");
query.setParameter("list", subjectIds);
List<Integer> studyGroupIds = query.getResultList();
close();
}
private static void open()
{
emf = Persistence.createEntityManagerFactory("PU");
em = emf.createEntityManager();
}
private static void close()
{
if(em != null)
{
em.close();
em = null;
}
if(emf != null)
{
emf.close();
em = null;
}
}