我目前正在使用内存德比数据库开发一个小应用程序。我正在使用Hibernate 4.3.10和JPA 2.以下是我的小型演示应用程序的链接:in the docs
此短代码导致“java.sql.SQLException:在事务仍处于活动状态时无法关闭连接。”
EntityManagerFactory emf = Persistence.createEntityManagerFactory(null);
EntityManager em = emf.createEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<MyEntity> query = cb.createQuery(MyEntity.class);
em.createQuery(query.select(query.from(MyEntity.class))).getResultList();
em.close();
emf.close(); // Here the exception is raised!
所以,即使我不需要任何交易并且没有启动任何交易,也有一些事情开始了吗?!
如果我用这个
em.createQuery(“从MyEntity m中选择m”,MyEntity.class).getResultList();
然后没有引发任何异常,虽然它也在做同样的事情!
我做错了什么,或者这是期望的行为?
答案 0 :(得分:0)
您需要持久性单元的名称,名称位于persistence.xml文件中。
EntityManagerFactory emf = Persistence.createEntityManagerFactory("name of the persistence unit");