Spring @hibernate会话刷新的事务(readonly=true)行为
我们有下面这样的课Spring @hibernate会话刷新的事务(readonly=true)行为,spring,spring-data-jpa,spring-transactions,Spring,Spring Data Jpa,Spring Transactions,我们有下面这样的课 @Transactional(readOnly=true) public class AService { @PersistenceContext private EntityManager em; @Autowired private ARepository arepo; public void saveA(A a) { arepo.save(a); } public void saveandFlushA(A a) { a
@Transactional(readOnly=true)
public class AService {
@PersistenceContext
private EntityManager em;
@Autowired
private ARepository arepo;
public void saveA(A a) {
arepo.save(a);
}
public void saveandFlushA(A a) {
arepo.save(a);
entityManager.unwrap(Session.class).flush();
}
}
我们使用的是postgres+jpa hibernate+spring事务管理,当我们调用save(a)方法时,它不会导致save提交,这是正常行为,因为我的事务设置为readonly=true,但当我调用saveandFlushA(a)时导致insert语句被激发并提交,但我希望它不会提交
Spring事务文档显示只读标志设置读/写与只读事务
我不明白为什么即使是只读事务也会提交数据?任何见解都将受到极大欢迎