我创建了一个服务层,我的方法在其中以下列方式对其进行了事务性注释:
@Transactional
void a() {
User user = new User(1, "Abc", "Delhi");
userDao.save(user);
A a = null;
a.toString(); //null pointer exception being encountered here.
}
事务应该已经回滚,并且用户的详细信息不应该持久保存到数据库,但是没有发生。
答案 0 :(得分:0)
运行时异常将默认回滚事务。我并不完全知道hibernate,但是在JPA的eclipse链接实现中,我们可以为应用程序异常指定rollback = true / false,如下所示。
@ApplicationException(inherited = true,rollback = true)
尝试类似的配置更改。
你也可以在catch块中回滚,如下所示
catch(例外e){
entityManger.getTransaction().rollback();
}