java - 尝试在jpa中删除时的并发问题

标签 java jpa jakarta-ee

我有 2 个 EAR 1_EAR 和 2_EAR(它们有网络服务和其他代码)。现在我有 1 个项目 DB_prj 用于与数据库交互。现在所有项目 1_EAR、2_EAR、DB_prj 在它们各自的元中都有一个 persistence.xml -inf文件夹。现在只有1_EAR和2_EAR里面有web.xml。 2_EAR是我们团队开发的一个新项目。 1_EAr 工作正常。现在,当我尝试使用我放在 2_EAR 中的开发类删除任何记录时,我的代码挂起并超时。要删除记录,我从 DB_prj 调用 API,从 1_EAR 调用 API 时工作正常。在 web.xml 中1_EAR 和 2_EAR 我有以下共同点。 1_EAR 的 web.xml 有许多其他东西在 2_EAR 的 web.xml 中不存在。

<persistence-context-ref>
 <persistence-context-ref-name>persistence/XYZPersist</persistence-context-ref-name>
 <persistence-unit-name>XYZPersist</persistence-unit-name>
 </persistence-context-ref>

任何人都可以帮助我解决这个问题吗?上面的代码是在有人回答我的帖子@ problem with JNDI 后放在 2_EAR 的 web.xml 中的。

最佳答案

我敢打赌,您的 EAR#2 会通过 JNDI 解析上下文,但上下文是由 EAR#1 和 EAR#1 类加载器绑定(bind)的;因此,在持久性 API 的深处,您可能会得到一个 ClassCastException,因为该类虽然具有相同的名称和包,但是由不同的类加载器加载的。

我的观点是,两个 EAR 的持久性单元应该有不同的 JNDI 名称。从您的帖子看来它们是相同的。

(实际上,提到插入/更新工作正常与我的假设相矛盾,但谁知道呢。)

关于java - 尝试在jpa中删除时的并发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633748/

相关文章:

java - DTO,如何避免它们?

java - JEdi​​torPane 不想显示在 html 中完成的按钮(它显示在浏览器中)

java - 使用多线程对文件进行排序

java - JPA 属性访问给出 NullPointerException

java - 所有者删除时违反参照完整性约束(OneToMany 单向)

java - 关于servlet的正确使用方法的问题

java - Spring Integration Java DSL - 异步执行多个服务激活器?

java - 在 Android 中从文本字段转换为数字

java - 谷歌应用引擎: 1000 records limit still present with JPA?

java - 仅使用 ServletContext 查找应用程序的 URL