为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

长风秋雁 2021-11-03 14:49:05
我是春天的新手。为什么@transactional不建议将注解与选择操作一起使用?
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

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

不正确,您没有提供此类推荐的证明(请提供),并且在Spring @Transactional 设置中,您选择或只读了事务支持

readOnly  boolean  Read/write vs. read-only transaction

此外,在使用连接池时,如果在 select 语句之后不回滚/提交,它会将其视为脏提交,例如,请参阅Hikari 的 brettwooldridge 评论

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


查看完整回答
反对 回复 2021-11-03
?
慕容3067478

TA贡献1773条经验 获得超3个赞

选择操作是关于阅读的,没有什么是事务性的。事务性通常是指在单个原子单元中捆绑对 DB 的大量写入。如果事务失败,则整个单元以及所有捆绑的写入都将回滚。所以一个事务只有在事务中的所有语句都通过的情况下才能成功。

Select 是只读操作。对于 Select,您可以拥有诸如 - Read Dirty 或 Read after Commit 等内容,但事务性不适用。


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 665 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信