Java 如果一个类被标记为@Transactional,是否可以省略通常的事务管理样板代码?
如果一个类被标记为@Transactional,这是否意味着样板文件:Java 如果一个类被标记为@Transactional,是否可以省略通常的事务管理样板代码?,java,hibernate,spring,Java,Hibernate,Spring,如果一个类被标记为@Transactional,这是否意味着样板文件: Transaction tx = session.getTransaction(); try { ... ... ... tx.commit(); } catch (Exception e) { tx.rollBack(); } 可以省略吗?我的基于Hibernate的代码当然可以在没有它的情况下工作 编辑(后续):那么为什么人们总是在方法中编写样板文件,即使他们的类被
Transaction tx = session.getTransaction();
try {
...
...
...
tx.commit();
}
catch (Exception e) {
tx.rollBack();
}
可以省略吗?我的基于Hibernate的代码当然可以在没有它的情况下工作
编辑(后续):那么为什么人们总是在方法中编写样板文件,即使他们的类被注释了 当然,这是声明性事务概念的主要目标。
此外,它更灵活,因此您可以使用不同的传播级别在事务中组合多种方法。当然,这是声明性事务概念的主要目标。
此外,它更灵活,因此您可以使用不同的传播级别在事务中组合多种方法。只要您还有
,是的--这就是注释的用途:)
详细说明。只要您还有
,是的——这就是注释的目的:)
详细说明。是的,只要
也就是说,对该方法的所有调用都是在从Spring获得的对象上执行的,并且不会从同一类的其他方法执行任何调用
Session
通过调用SessionFactory.getCurrentSession()
在方法内部获得也就是说,对该方法的所有调用都是在从Spring获得的对象上执行的,并且不会从同一类的其他方法执行任何调用
Session
通过调用SessionFactory.getCurrentSession()
在方法内部获得那么为什么人们总是在方法中编写样板文件,即使他们的类被注释了呢?一个过时的代码。或者只是他们不阅读文档,或者只是不理解,或者害怕使用它,或者。。。简言之,没有合理的理由。那么,为什么人们在方法中编写样板文件,即使他们的类被注释了?一个过时的代码。或者只是他们不阅读文档,或者只是不理解,或者害怕使用它,或者。。。简言之没有合理的理由。回答你的最后一个问题:出于同样的原因,SO上三分之一的问题可以通过阅读f***文档来回答:开发人员现在无法或太懒了,无法阅读文档。回答你的最后一个问题:出于同样的原因,SO上三分之一的问题可以由仅仅阅读f***文档:现在的开发人员无法或懒得阅读文档。