问题标签 [persistence-unit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1121 浏览

sql-server - 在没有 XA 的事务中是否可以有两个 MSSQL 持久性单元?

我们有一个应用程序,它有许多实体类,它们必须有两个表。这些表是相同的,唯一的区别是名称。SO 上提供的常见解决方案是使用继承(映射超类和每类表策略)或具有不同映射的两个持久性单元。我们使用后一种解决方案,并且应用程序建立在这种方法之上,因此它现在被认为是给定的。

有一些 EJB 方法将对两个持久性上下文进行更新,并且必须在一个事务中进行。两个持久性上下文具有相同的数据源,即与 Microsoft SQL Server 数据库(2012 版)启用 XA 的连接。上下文之间的唯一区别是,有一个映射 XML 来更改某些实体类的表名,因此可以在这些表上工作。

架构负责人之一希望看到 XA 事务被消除,因为它们会导致数据库的大量开销,并且显然还会使执行的查询的日志记录和分析更加困难,可能还会阻止一些准备好的语句缓存。我不知道所有细节,但是对于很多应用程序,我们已经设法消除了 XA。然而,对于这个,我们目前不能,因为有两个持久性上下文。

在这种情况下,是否有某种方法可以在没有 XA 的情况下以事务方式对两个上下文进行更新?如果是这样,怎么做?如果没有,是否有一些架构或配置更改可以使用一个持久性上下文而不必转向两个表的子类?

我知道这些问题:是否可以在事务中使用多个持久性单元,而不是 XA?用于两阶段提交的 XA 事务

在投票结束此作为重复之前,请注意情况不同。我们不像第一个问题那样处于只读情况,两个上下文都在同一个数据库上运行,我们只使用 MSSQL,而且我们使用的是 GlassFish,而不是 Weblogic。

0 投票
1 回答
162 浏览

ejb - EJB 持久性不起作用

我有一个在 Jboss 5GA, JDK 6 上运行的 EJB 模块的示例 EJB 持久性。默认包有 3 个文件:

书.java:

库PersistentBean.java

库PersistentBeanRemote.java:

配置文件是具有代码行的 persistence.xml 和 jboss-ds.xml:

客户的申请包括:

和 jboss-client.jar,EJB 模块被导入

运行时出现错误:

如何解决这些错误?非常感谢 !

0 投票
1 回答
174 浏览

jakarta-ee - 两个 Java EE 应用程序是否可以共享相同的持久单元和数据源

我们正在开发一种供内部使用的 SDK,其中包括一些自定义注释、请求过滤器和一些 JPA 实体,用于存储有关我们组织用户的信息。SDK 是一个 maven 工件,包括对保存用户信息实体的持久性单元的定义。

我们的问题是:我们必须支持使用我们的 SDK 部署到同一个容器或它们自己的容器中的多个应用程序。(SDK的持久化组件不能重构为自己的微服务)

我们的问题:既然我们的授权组件使用的持久化单元是在SDK中定义的,那么在同一个容器中运行的多个Java项目引用同一个数据源/持久化单元组合是否会导致问题?或者有没有一种我们可以并且应该实施的方法?

0 投票
1 回答
334 浏览

java - 持久性单元被覆盖

我正在编写一个独立的 java 应用程序,从一个 Maven 项目构建它并通过调用 jar 文件来执行。

在应用程序中,我有一个使用持久性单元的实体管理器,在我的 persistence.xml 中定义为独立的(transaction-type="RESOURCE_LOCAL")

实际的 Entity 注释类来自另一个项目,因此作为依赖项添加到 pom.xml 文件中。

问题是包含实体类的项目的persistence.xml 在构建时会覆盖jar 目标文件夹中的实际独立应用程序的persistence.xml。

Maven 构建过程成功完成,但是在运行 jar 时出现如下异常:

线程“主”javax.persistence.PersistenceException 中的异常:尝试以下发现的实现后,没有可用于“PersistenceUnitXXX”的持久性提供程序:org.eclipse.persistence.jpa.PersistenceProvider

此外,包含实体类的项目的持久性单元旨在部署在应用程序服务器上,因此我认为不可能为独立应用程序重用该 persistence.xml。

pom 看起来像这样:

文件结构为

0 投票
0 回答
71 浏览

jpa - 在运行时而不是仅在 Persistence.xml 中定义实体类

我看到以前有人问过这个问题,但多年来我没有看到任何答案。我能够找到的前几年的答案并不充分。

除了在persistence.xml文件中定义实体类之外,还有没有办法在运行时为持久性单元加载/设置/定义实体类?

我使用 Guice 作为我的框架,所以如果有特定于 Guice 的答案,那就更好了。我对任何涉及 Spring 的解决方案不感兴趣,除非它们可以在 Spring 框架之外使用。

0 投票
1 回答
324 浏览

hibernate - Hibernate:persistence.xml 中的错误 - 元素“persistence-unit”不能包含文本内容。内容类型被定义为仅元素

我正在使用 Hibernate,下面的 persistence.xml 工作正常。但是在 Eclipse 中从 Table 创建一个新的 JPA 实体后,persistence.xml 给出错误 - 元素“persistence-unit”不能包含文本内容。内容类型被定义为仅元素。我已从 persistence.xml 中删除了新类,但错误仍然存​​在。

0 投票
1 回答
134 浏览

hibernate - Jave EE 中的 Hibernate + H2:定义多个持久性单元导致测试失败,出现“不是实体”错误,但第一个错误除外

我在我的测试 persistence.xml 中定义了 2 个持久性单元,为每个连接数据库的集成测试创建 2 个不同的 H2 内存数据库。

测试很好并且单独运行时通过了,但是当我运行所有测试时,只有第一个通过,第二个失败,有:

显然,我在课堂上有@Entity注释。

而且,即使我告诉 H2 在最后一个连接消失时销毁(DB_CLOSE_ON_EXIT=TRUE;DB_CLOSE_DELAY=0;),并在每个 PU 中使用不同的 db 名称,这种情况仍然会发生。

我的persistence.xml:

这使我无法使用 H2;为什么我不能同时使用多个内存数据库?

我觉得跟ddl-auto房产有关系?但是当我输入其他值时,数据不会插入数据库;只update工作。

我可以有多个这样的内存 H2 数据库吗?如果不是,还有哪些其他模式同时适用于多个数据库?试过tcp但无济于事。我试图以嵌入式模式(在物理文件中)定义数据库,但不工作。我将 SQL 和 xml 中的模式更改为每个 PU 中的不同名称,但不起作用。