最近使用JPA的 NamedQuery,总是抛出ReturnType异常,NullPoint空指针异常。后来发现是有以下规律:
1>当使用EntityManager.createNamedQuery(String, Class<T>)时,生成的TypedQuery只能用来进行查询操作,例如getResultList();不可以执行executeUpdate()方法,一旦执行executeUpdate()进行更新、删除操作,就会引发异常;
2>如果要通过命名查询生成Query,并执行executeUpdate()方法,只能使用EntityManager.createNamedQuery(String).executeUpdate(),不可以提供Class<T>参数。
1>当使用EntityManager.createNamedQuery(String, Class<T>)时,生成的TypedQuery只能用来进行查询操作,例如getResultList();不可以执行executeUpdate()方法,一旦执行executeUpdate()进行更新、删除操作,就会引发异常;
2>如果要通过命名查询生成Query,并执行executeUpdate()方法,只能使用EntityManager.createNamedQuery(String).executeUpdate(),不可以提供Class<T>参数。