【发布时间】:2015-05-04 12:46:49
【问题描述】:
我有一个从数据库读取数据的服务。阅读后有一个刷新导致标题中提到的异常。下面是语句顺序
ManagerFactory factory = new ManagerFactory();
EntityManager manager = factory.getManager();
EntityTransaction transaction = manager.getTransaction();
Query query = manager.createQuery("select personRoleJPA from personRoleJPA");
personRoleJPA = (PersonRoleJPA) query.getSingleResult();
if (manager.isOpen()) {
manager.flush();
}
if (manager.isOpen()) {
manager.close();
manager = null;
}
if (transaction.isActive()) {
transaction.commit();
}
我怀疑异常是因为我没有开始交易。 我的问题是,当您不进行任何写入时,您真的需要刷新和提交吗?
【问题讨论】:
-
不,当你不写任何东西时,不需要刷新和提交
-
删除所有与事务相关的行,您将摆脱问题
-
@ Hussein Zawawi:你的意思是我什至不需要创建事务'EntityTransaction transaction = manager.getTransaction();' ?
-
@Hussein Zawawi:所以只关闭经理就足够了? if (manager.isOpen()) { manager.close();经理=空; }