【发布时间】:2015-09-09 14:04:01
【问题描述】:
我创建EntityManager,开始一个事务,提交它,然后我关闭EntityManager。为什么我不能在我的应用程序运行时操作数据库(即使在关闭 EntityManager 连接 em.close(); 之后)?
public void create(Product product) {
EntityManager em = null;
try {
em = getEntityManager();
em.getTransaction().begin();
em.persist(product);
em.getTransaction().commit();
em.close();
} finally {
if (em != null) {
em.close();
}
}
}
【问题讨论】:
-
实际上应该打开
EntityManager来操作数据库....您是否将@Transactional添加到进行数据库操作的方法中?您使用的是纯 Java 还是休眠? -
请不要在 cmets 添加代码,编辑您的问题
-
澄清一下:您不能在您的应用程序之外操作数据库,即绕过内部连接池?
-
@dhke,确认..就是这样
-
“操纵数据库”到底是什么意思?如果您连接到正确的数据库服务器,即使您的应用程序正在运行,您也应该能够针对该数据库运行 DML 语句。您使用的是哪个 DBMS?以及如何连接?