Jakarta ee Websphere上每个持久化单元生成的重复类加载器
我们在WAS 8.5上运行EAR,我们的每个DAO都被复制了31次。注意到我们的persistence.xml有30个JNDI数据源,我测试了减少数量,实际上重复计数也减少了 但我已经尝试过一次又一次地删除所有多余的行,我仍然得到了重复的行。删除最后一行会给我一个NestedJar异常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
<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将根据需要使用,也就是说,当上述内容相关时。