由于之前用的springMVC,使用sessionFactory,后来在springBoot中使用sessionFactory报错 no transaction is in progress。
后来查找了大量资料解决了这个问题:
https://stackoverflow.com/questions/50650041/spring-boot-hibernate-no-transaction-is-in-progress
关键注意的是:
在springBoot2中使用,这个是hibernate5版本
@PersistenceContext protected EntityManager em; private Session getCurrentSession() { Session session = em.unwrap( Session.class ); return session; }
在springMVC中使用,这个是hibernate4版本
@Autowired(required=true)
@Qualifier(value="sessionFactory")
private SessionFactory sessionFactory;
public Session getCurrentSession() {
return this.sessionFactory.getCurrentSession();
}