我的伪代码如下所示,使用EclipseLink:
entityManager.getTransaction().begin(); //0 create orders //1 customerEntity.getOrders().add(orderEntity); //2 entityManager.getTransaction().commit(); //3
问题出在#2,EclipseLink从#1获得了一个不同的连接,它在一个事务(和线程)中结束了两个连接,这导致我的应用程序出现死锁。
我用谷歌搜索eclipselink可能会使用不同的池进行读写。它仍然是真的吗?为什么eclipselink试图获得另一个连接,如何避免遇到死锁?