0
我想保存使用Hibernate的会话许多实体在一个电话挂了,所以我创造了这个代码:呼叫Session.get()后,多次打电话
public void persistOrUpdateAllTrades(List<Trade> objects) {
EntityManager entityManager = entityManagerFactory.createEntityManager();
Session session = (Session)entityManager.getDelegate();
try {
FlushMode lastFlushMode = session.getFlushMode();
session.setFlushMode(FlushMode.MANUAL);
for(Trade trade: objects) {
if(session.get(Trade.class, trade.getId()) == null){
session.save((Object)trade);
}
}
session.flush();
session.setFlushMode(lastFlushMode);
} catch (Throwable e) {
throw new RuntimeException(e.getMessage(),e);
}
}
它通常效果很好,但有时执行停止/挂在if(session.get(Trade.class, trade.getId()) == null)
,我不知道为什么。它不会抛出任何异常,并且应用程序不会停止。应用程序使用在localhost上运行的MySQL服务器。任何提示?
这就是它,谢谢! –