在我的Spring Boot Webapp中,我有一個調度程序類@EnableScheduling 和@EnableAsync,晚上由@Scheduled運行。類是獲得與會話:在Spring Boot Scheduler中獲取JPA會話
Session session = entityManager.unwrap(Session.class);
導致此異常:
org.hibernate.SessionException: Session is closed!
什麼是獲得預定的任務會話的正確方法?
這裏是下面的代碼:
Session session = em.unwrap(Session.class);
Query query = session.createQuery("SELECT l FROM Lei l ORDER BY l.id");
query.setFetchSize(Integer.valueOf(1000));
query.setReadOnly(true);
query.setLockMode("a", LockMode.NONE);
// http://stackoverflow.com/questions/5067619/jpa-what-is-the-proper-pattern-for-iterating-over-large-result-sets
ScrollableResults results = query.scroll(ScrollMode.FORWARD_ONLY);
while (results.next()) {
Lei lei = (Lei) results.get(0);
writer.writeLEI(lei);
}
results.close();
session.close();
你可以發佈一些更多的代碼? – jahra
爲什麼你需要'Session' ......我使用普通的'EntityManager'有什麼問題? –