我制作了一个必须与多个数据库一起使用的应用程序,并对数据库进行CRUD操作。但是我遇到了这个问题,对于可能出什么问题我一无所知。这很奇怪,因为前几天工作正常,现在却给了我同样的错误。请帮忙!
过去它可以工作,现在没有奇怪的想法了,因为我根本没有修改该应用程序。这是用于使用maven-hibernate项目的pgAdmin服务器。
仅当我想更新某些内容时,我才会遇到此问题。我想提到的是,我对每个数据库都有一个连接,而不是所有数据库都有一个连接。
public boolean executeTransaction(Consumer<EntityManager> action) {
EntityTransaction entityTransaction = entityManager.getTransaction();
try {
entityTransaction.begin();
action.accept(entityManager);
entityTransaction.commit();
} catch (RuntimeException e) {
System.err.println("Transaction error: " + e.getLocalizedMessage());
entityTransaction.rollback();<<-- at this line everything breaks.
return false;
}
return true;
}
Transaction error: Error while committing the transaction
Exception in thread "main" java.lang.IllegalStateException: Transaction not active
at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:103)
at helper.DatabaseHelper.executeTransaction(DatabaseHelper.java:42)
at daoImpl.PasariDao.update(PasariDao.java:43)
at main.Menu.pasariOperations(Menu.java:240)
at main.Main.main(Main.java:36)
当我想进行更新操作时,这是我得到的错误。 它应该在更新之前和之后打印我数据库中的内容。