java – 何时在Spring中使用Hibernate的事务?

升级我的项目我在这里考虑交易.那么事情是我不太确定我何时应该在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对事务管理有很多话要说.

上一篇:CreateThread()函数及_beginthreadex()函数


下一篇:java – Hibernate5中的“逆向工程”功能在哪里?