【问题标题】:JPA transactions and triggers/scheduled jobs possible conflictsJPA 事务和触发器/计划作业可能的冲突
【发布时间】:2016-03-27 15:07:27
【问题描述】:

在我们的应用程序中,我们使用 PL/SQL 来维护数据的持久性,我们还大量使用 PL/SQL 存储过程、计划作业和触发器来实现部分应用逻辑。

我的问题是:

如果我担心冲突,请使用 JPA 访问此持久性
JPA 事务 可能与在 DB 上定义的上述触发器和计划作业一起使用?

如果你能指点一些在线资料也将非常有帮助 我可以阅读以消除我的疑虑。
谢谢。

【问题讨论】:

    标签: java jpa plsql triggers jobs


    【解决方案1】:

    你可能有问题。在数据库中实现业务逻辑可能会导致代码重复。但是你最大的问题是数据的完整性和一致性:

    1. 您的应用程序是否使用乐观锁定。如果是,那么 JPA 可能无法看到受尊重实体版本的更改。如果由于 PLSQl 代码发生更改,则不会抛出乐观锁定异常。除非其中也实现了版本控制。
    2. 缓存。如果您使用缓存,您最终可能会遇到缓存与数据库状态不一致的情况。例如,您读取实体 A 的状态被缓存,然后 PLSQL 后台程序更新其状态。然后你进行另一次更新并坚持和 Ta 数据......你有问题。然后,我们再次谈到数据的版本化方式。

    总的来说,混合 PL/SQL 和 Hibernate 我真的不喜欢它...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2015-11-19
      相关资源
      最近更新 更多