gpt4 book ai didi

java - JPA.EJB3 中的 EJB 2 ReadOnlyBean 等效项是什么?

转载 作者:行者123 更新时间:2023-12-02 03:23:26 25 4
gpt4 key购买 nike

我正在将 EJB 2.1 项目迁移到 JPA/EJB3。我想摆脱很多 EJB ReadOnlyBeans。

JPA/EJB3 是否设计为本质上支持 ReadOnlyAccess,从而不需要 ReadOnlyBeans?

EJB 2:我在 MSSQLSERVER 中使用 JBOSS 将隔离级别设置为 READ_COMITTED。当 Txn x, 尝试读取由 txn Y 锁定的行时,它将等待,直到 txn Y 提交对该行的更改。对于不需要最新数据的场景,我们使用ReadOnlyBeans来获取数据,无需任何事务。

JPA/EJB3:我仍然将隔离级别设置为 READ_COMITTED。如果我删除ReadOnlyBeans,会有什么问题吗?

由于 TransactionSceoped 实体管理器使用不同的实体实例,因此删除 ROBean 应该不会有任何问题,对吗?

谢谢!

最佳答案

如果我理解正确,您是在问如何使 JPA 实体不可变。如果是这样,您可以

  • 将其所有属性标记为 insertable = false、updatable = false(使用 @Column@JoinColumn 等)
  • 使用特定于供应商的扩展(例如 Hibernate 中的 @Immutable、EclipseLink 中的 @ReadOnly 等)

话虽这么说,我认为您描述的用例不需要实体是只读的。如果您在没有任何事务的情况下读取实体,它们在加载后会立即分离,因此不存在意外修改它们的风险(除非您专门选择了扩展持久性上下文)。

关于java - JPA.EJB3 中的 EJB 2 ReadOnlyBean 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56917056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com