弹簧& JDBC 事务:如何确保 DAO 对象中的隔离级别可串行化?
正如典型的那样,事务是在服务级别定义的。
但有时我们的 DAO 方法需要更高的、可串行化的隔离级别。
但是,是否需要 SERIALIZABLE 隔离级别的知识封装在 DAO 方法中,服务方法不需要知道这一点。
如何在 DAO 方法级别强制执行 SERIALIZABLE 隔离级别?我什至找不到一种方法来识别 Spring 中的隔离级别。
Transactions are defined at the service level, as is typical.
But upon occasion we have a DAO method which requires a higher, SERIALIZABLE, isolation level.
But knowledge of whether the SERIALIZABLE isolation level is necessary is encapsulated in the DAO method, the service method need not know about this.
How can I enforce SERIALIZABLE isolation level at the DAO method level? I can't even find a way to identify what the isolation level is in Spring.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
服务层通常定义事务语义。
但是...您可以添加 下面的注释在DAO实现方法上实现可序列化隔离级别,以达到效果:
MANDATORY是这样DAO方法在不存在事务的情况下不会创建事务。这将强制所有调用从服务方法开始。如果需要,您可以更改它。
让我知道结果如何。
The service layer typically defines the transactional semantics.
But ... you can add the following annotation to achieve the serializable isolation level on the DAO implemenation method to achieve the effect:
The MANDATORY is so that the DAO method will not create a transaction if none exists. This will force all invocations to start from a service method. You can change that if desired.
Let me know how it works out.