我收到异常javax.persistence.PersistenceException:org.hibernate.SessionException:在return语句中关闭了会话,我正在使用spring JPA。
StringBuilder queryBuilder = new StringBuilder(querystat);
System.out.println("startDate--->" + startDate);
Query query =
getEntityManager().createQuery(queryBuilder.toString());
System.out.println("query.list();--->"
+ query.getResultList().size());
return query.getResultList();
有人对这个问题有想法吗?
答案 0 :(得分:0)
感谢您的回复。.我在服务类中添加了transactionTemplate的工作方式。以下是工作代码。
return transactionTemplate
.execute(new TransactionCallback<List<?>>() {
public List<?> doInTransaction(
TransactionStatus status) {
return dao.monthReportQuery(startDate, endDate);
}
});
答案 1 :(得分:0)
调用代码的公共方法需要用@Transactional注释。
此外,@Transactional
的处理需要激活。这可能已经激活,也可能尚未激活。可以使用@EnableTransactionManagement激活它。
注释为@Transactional
的方法不得在同一类中调用。