EntityManager 如何在 EJB 3.0 上下文中工作,但不在 EJB 上下文之外工作


  • 所以我有一个 EJB EjbA和一个名为 EntityA 的休眠实体。

  • EnitityA具有属性EnitityB和一些String类型属性。

  • EjbA有操纵EnitityA的方法methodA

现在,如果我调用 EjbAmethodA,在 EJB 调用完成后,在 EnitityA 上完成的操作将反映在 db 中。

我知道当我们调用 EJB 方法时,我们实际上在其上调用了一个代理实现,它首先启动数据库事务,打开休眠会话......

它如何在方法调用中已更改的EntityA上调用hibernate.update? 基本上 EJB 容器如何知道在这个 EJB 方法调用中只修改了实体 A?

当您使用 find(( 或其他查询加载实体时,它会进入托管状态。它与特定会话绑定,当会话被关闭/刷新时,与其绑定的实体正在更新(因此所有修改都将传播到数据库中(。要更新的实体的 HasA 关系(实体 A 中的实体 B(的更新取决于级联设置。

相关内容

  • 没有找到相关文章

最新更新