Jakarta ee Websphere上每个持久化单元生成的重复类加载器

Jakarta ee Websphere上每个持久化单元生成的重复类加载器,jakarta-ee,jpa,ejb,websphere,persistence.xml,Jakarta Ee,Jpa,Ejb,Websphere,Persistence.xml,我们在WAS 8.5上运行EAR,我们的每个DAO都被复制了31次。注意到我们的persistence.xml有30个JNDI数据源,我测试了减少数量,实际上重复计数也减少了 但我已经尝试过一次又一次地删除所有多余的行,我仍然得到了重复的行。删除最后一行会给我一个NestedJar异常 <persistence-unit name="unitTest" transaction-type="JTA"> <jta-data-so

我们在WAS 8.5上运行EAR,我们的每个DAO都被复制了31次。注意到我们的persistence.xml有30个JNDI数据源,我测试了减少数量,实际上重复计数也减少了

但我已经尝试过一次又一次地删除所有多余的行,我仍然得到了重复的行。删除最后一行会给我一个NestedJar异常

   <persistence-unit name="unitTest"
          transaction-type="JTA">    
          <jta-data-source>jdbc/Testing/Ds</jta-data-source>
          <mapping-file>META-INF/default-mappings.xml</mapping-file>
          <exclude-unlisted-classes>false</exclude-unlisted-classes>
   </persistence-unit>

jdbc/Testing/Ds
META-INF/default-mappings.xml
假的
有人知道可能会导致我的EJB类在每个持久性单元中重复的任何其他内容吗

如果您查看第76页第3.2项“实体实例的生命周期”,请参见 “如下所示:

3.2实体实例的生命周期本节描述了用于管理实体实例生命周期的EntityManager操作

实体实例可以被描述为新的、受管理的、, 分离的,分离的

•新实体实例没有持久性 标识,并且尚未与持久性上下文关联

•A 托管实体实例是具有持久标识的实例 当前与持久性上下文关联

•独立的 实体实例是具有持久标识的实例,而持久标识不是 (或不再)与持久性上下文关联

•移除的 实体实例是具有持久标识的实例,关联 对于persis-tence上下文,该上下文将从数据库中删除 在事务提交时

比我想象的情况还要糟糕的是,您的情况意味着您有30个jpa持久化对象,每个对象映射为指向每个数据库的1个持久化上下文(持久化标识),并且您可能有1个分离的和/或新的对象,没有持久化标识

这是因为规范决定了实体实例生命周期应该如何实现

如果您查看第76页第3.2项“实体实例的生命周期”,请参见 “如下所示:

3.2实体实例的生命周期本节描述了用于管理实体实例生命周期的EntityManager操作

实体实例可以被描述为新的、受管理的、, 分离的,分离的

•新实体实例没有持久性 标识,并且尚未与持久性上下文关联

•A 托管实体实例是具有持久标识的实例 当前与持久性上下文关联

•独立的 实体实例是具有持久标识的实例,而持久标识不是 (或不再)与持久性上下文关联

•移除的 实体实例是具有持久标识的实例,关联 对于persis-tence上下文,该上下文将从数据库中删除 在事务提交时

比我想象的情况还要糟糕的是,您的情况意味着您有30个jpa持久化对象,每个对象映射为指向每个数据库的1个持久化上下文(持久化标识),并且您可能有1个分离的和/或新的对象,没有持久化标识

这是因为规范决定了实体实例生命周期应该如何实现


关于

您的意思是您有30个不同的数据源?你使用它们中的每一个?是的,每个客户都有自己的数据库。你是说你有30个不同的数据源?你使用它们中的每一个吗?是的,每个客户都有自己的数据库。这涉及到管理实体实例。不幸的是,在我的例子中,复制的是EJB。EJB不是持久性对象-当它们被使用(例如查询数据库)时,这将导致EntityManager工厂提供EntityManager,该EntityManager将根据需要使用,也就是在上述情况相关时使用。这涉及到管理实体实例。不幸的是,在我的例子中,复制的是EJB。EJB不是持久性对象-当它们被使用时(例如,查询数据库),这将导致EntityManager工厂提供EntityManager,该EntityManager将根据需要使用,也就是说,当上述内容相关时。