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服務器。任何提示?
這就是它,謝謝! –