0

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;
    }
}
eliasRagel
  • 17
  • 5

0 Answers0