升级我的项目我在这里考虑交易.那么事情是我不太确定我何时应该在Spring中使用Hibernate查询的事务.并不是说我完全不明白什么是交易,我想我这样做,但是我是否需要使用事务来获取get *类型的查询只是设置只读属性?
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- all methods starting with 'get' are read-only -->
<tx:method name="get*" read-only="true" />
<!-- other methods use the default transaction settings -->
<tx:method name="*" />
</tx:attributes>
</tx:advice>
这对get *查询有效吗?因为,据我所知,使用事务应该像更新,插入,删除和此类查询一样.我在这里错过了什么吗?
解决方法:
使用事务在某种程度上取决于要求.
显然,在UPDATE和DELETE操作上使用事务是有意义的.例如,如果您需要锁定记录以使另一个线程/请求不会更改读取,则在SELECT语句上使用事务也很有用.这通常是业务要求.
在我们公司,我们在事务中包装所有语句(即SELECT,UPDATE,DELETE).
此外,除数据级别外,事务管理确实更适合于另一层.通常,交易将符合业务要求.例如,如果要求是将钱存入帐户,则应使用某些更高级别的类/代码将整个方法标记为事务性,因为该特定方法需要作为一个单元完成(因为可能存在多个数据库)调用).
Spring对事务管理有很多话要说.