为什么不建议将@transactional批注与select操作一起使用

时间:2018-10-07 09:59:53

标签: java spring spring-transactions transactional

我是春天的新手。

为什么不建议将@transactional注释与选择操作一起使用?

2 个答案:

答案 0 :(得分:1)

  

为什么不建议将@transactional注释与select操作一起使用?

否,您没有提供有关推荐的证明(请提供),并且在Spring @Transactional settings中您选择或只读了交易支持

readOnly  boolean  Read/write vs. read-only transaction

使用连接池时,如果您在选择语句后不回滚/提交,也会将其视为脏提交,例如,参见Hikari's brettwooldridge comment

  

如果autoCommit = false,则必须绝对调用commit()或rollback()来确保正确性。

答案 1 :(得分:-1)

“选择操作”与阅读有关,与之无关。事务性通常是指将多个写操作捆绑到一个原子单元中。如果事务失败,则将回滚整个单元以及所有捆绑的写操作。因此,只有在交易中的所有语句都通过后,交易才能成功。

选择是只读操作。对于“选择”,您可以使用-脏读或提交后读取等内容,但是事务性不适用。