Wildfly 中有多个持久单元?

2024-04-10

Wildfly (9.0.2) 应用程序中是否可以有两个持久性单元?

我收到“WFLYJPA0061:未指定持久性单元名称,并且应用程序部署部署“jasper-web.war”中有 2 个持久性单元定义。要么将应用程序部署更改为只有一个持久性单元定义,要么为每个引用指定单元名称持久性单位。”

I have unitName中指定的@PeristenceContext注释。我在某处读到我可以禁用

<!--
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
    <jpa default-datasource="" default-extended-persistence-inheritance="DEEP"/>
</subsystem>
-->

in standalone.xml。这删除了错误消息,但也禁用了实体管理器的注入(在代码中引用它们的空指针)

我尝试将持久性单元拆分为两个不同的 ejb-jar,每个都有自己的 persistence.xml,但由于它们仍然包含在同一场战争中,Wildfly 仍然抱怨。

两个持久性单元与 hibernate 一起使用,一个与 postgresql 数据库一起使用,另一个与用于 ms 访问的 ucanaccess 驱动程序一起使用。他们都是分开工作的。


以下是我们的 wildfly 8.x/9.x ejb 应用程序中的工作示例:

首先,在 persistence.xml 中定义每个持久单元的所有类,可以关闭未列出的类以禁用自动发现。

持久性.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
   <persistence-unit name="primary">
      <jta-data-source>java:jboss/datasources/primary_ds</jta-data-source>
      <class>whatever.primary.model.SomeEntity</class>
      <exclude-unlisted-classes>true</exclude-unlisted-classes>
      <properties> ... </properties>
   </persistence-unit>

   <persistence-unit name="secondary">
      <jta-data-source>java:jboss/datasources/secondary_ds</jta-data-source>
      <class>whatever.secondary.model.AnotherEntity</class>
      <exclude-unlisted-classes>true</exclude-unlisted-classes>
      <properties> ... </properties>
   </persistence-unit>
</persistence>

如果您使用 JBoss Developer Studio,请忽略该警告(这只是一个 Eclipse 缺陷):

定义了多个持久性单元 - 仅第一个持久性单元将被识别

资源.java

package whatever.util;

import javax.annotation.Resource;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.sql.DataSource;

public class Resources {

    @Produces
    @PersistenceContext(unitName = "primary")
    private EntityManager emPrimary;

    @Produces
    @PersistenceContext(unitName = "secondary")
    private EntityManager emSecondary;

    @Produces
    @Resource(lookup = "java:jboss/datasources/primary_ds")
    private DataSource dsPrimary;

    @Produces
    @Resource(lookup = "java:jboss/datasources/secondary_ds")
    private DataSource dsSecodnary;

}

Dao 初级示例

package whatever.dao;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class DaoPrimaryExample {

    @PersistenceContext(unitName = "primary")
    private EntityManager em;

    public void create(SomeEntity entity) {
        em.persist(entity);
    }
}

Dao 二级示例

package whatever.dao;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class DaoSecondaryExample {

    @PersistenceContext(unitName = "secondary")
    private EntityManager em;

    public void create(AnotherEntity entity) {
        em.persist(entity);
    }
}

重要提示:如果您计划在同一事务中使用展位持久性单元,则应使用 XA 数据源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Wildfly 中有多个持久单元? 的相关文章

  • JPA 继承无法确定类型

    我有一个简单的 JPA 映射 但我不断得到一个Could not determine type for例外 setter 和 getter 被省略 Entity Inheritance strategy InheritanceType JO
  • 使用 JPA2/Hibernate 保留 java.time.Instant (JDK8)

    JPA 和 Hibernate 目前都不支持 JDK8 中 JSR 310 带来的新日期 时间类 JPAticket https java net jira browse JPA SPEC 63 休眠ticket https hiberna
  • JPA如何为@OneToMany关系的列添加唯一约束,例如用户名

    我有一个班级Site代表一个网站和一个类User A Site可以有多个Users class Site private int site ID OneToMany with a join table private List
  • JPA:@JoinColumn 和 @PrimaryKeyJoinColumn 之间的区别?

    两者之间的确切区别是什么 JoinColumn and PrimaryKeyJoinColumn You use JoinColumn对于属于外键一部分的列 典型的列可能如下所示 例如 在具有附加属性的连接表中 ManyToOne Join
  • 在JPA、关系型数据库等中,什么是Tuple? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在研究 Hibernate 和 JPA 并且一直在寻找这个术语 有人可以用实用和说教的方式向我解释一下这个术语是什么 以及它与 J
  • 在 hibernate JPA 的 getReference() 之后,如果不使用 setter 发出 select 则无法更新

    我有以下方法 Transactional public void savethis EntityObject t entityManagerTreasury getReference EntityObject class 1 t setAc
  • 枚举字段的自定义排序顺序

    是否可以将 JPA 中的字母排序更改为自定义排序 我在列中有这些数据division BRONZE SILVER GOLD DIAMOND 我已将其映射到实体字段 public enum Division BRONZE SILVER GOL
  • Spring data Jpa实体不受管理调用刷新时出现异常

    我有一个数据库代码 jar 我在不同的应用程序中使用它来访问数据库 我在用spring data jpa 我需要调用刷新来检查来自其他应用程序的数据库行的更改 这里我如何实现它 我的StudentRepository界面 public in
  • @Id 字段上的继承和 @AttributeOverride

    我有一个实体 需要手动设置 ID PK 我有一些用于审计和 PK 的抽象 MappedSuperclass 我仍然想使用它 所以我的想法是覆盖 id 列以摆脱 GenerateValue strategy GenerationType AU
  • @PreUpdate 不适用于 Spring Data JPA

    我有一个实体 Entity EntityListeners MyEntityListener class class MyEntity 还有听者 class MyEntityListener PrePersist PreUpdate pub
  • Envers 多级实体修订指南

    用户有 n 个联系人 联系人可以有本地化的评论 评论在联系人之间共享 爪哇豆 Audited Entity public class User OneToMany fetch FetchType EAGER cascade CascadeT
  • 目的地为必填项

    在 Wildfly 8 1 0 服务器中部署 Ear 时出现以下错误 1 Error Caused by javax resource spi InvalidPropertyException Destination is mandator
  • ManyToOne 关系上的 Hibernate @Where 注释

    我最近开始重构我的项目 因为我必须在一些表中添加额外的列 额外的列是一个枚举 待定或活动 由于这一更改 我现在需要重构所有查询 以便仅在状态为 活动 时检索行 经过一些研究 我发现我们可以使用 Where 注释来注释实体 当我在简单的列上使
  • 我需要在 Java 9 中使用哪个模块才能使用 JPA?

    我正在使用一个需要 JPA 的项目测试 Java 9 javax persistence 类 当我添加module info java并声明我的模块 下的所有类javax persistece包变得不可用 我搜索了很多 但找不到在 Java
  • 获取列名称以及 JSON 响应

    我有三个实体类 我编写了包含两个表的联接的查询 表 费用类别 Entity Table name ExpensesCategories public class ExpensesCategories Id GeneratedValue st
  • 使用 Spring / JPA 写入 Postgres 数据库的 JSON 列

    我有一个名为 test 的表 其中包含 Postgres 9 3 中 json 类型的列 sample column 我正在尝试使用 Spring JPA 将以下内容写入列中 name 更新的名称 我在其他帖子中读到 我需要添加自定义转换器
  • Hibernate 在使用序列时生成负 id 值

    我有一个具有以下定义的类 Id SequenceGenerator name SEQ ACE WORKERS QUEUE STATS ID sequenceName SEQ ACE WORKERS QUEUE STATS ID alloca
  • JPA 中的复合键

    我想创建一个具有自动生成的主键的实体 而且还有一个由其他两个字段组成的唯一复合键 我如何在 JPA 中执行此操作 我想这样做是因为主键应该用作另一个表中的外键 并且使其复合并不好 在下面的代码片段中 我需要命令和模型是唯一的 pk当然是主键
  • Spring 规范 - 谓词的联合

    我需要一个函数来过滤参数并构建查询 我有 4 个参数 因此如果我尝试为每个条件实现查询 我将不得不编写 16 2 4 实施 这不是一个好主意 我尝试通过界面改进我的代码Specification来自 Spring Data JPA 但我无法
  • 自动生成Flyway的迁移SQL

    当通过 Java 代码添加新模型 字段等时 JPA Hibernate 的自动模式生成是否可以生成新的 Flyway 迁移 捕获自动生成的 SQL 并将其直接保存到新的 Flyway 迁移中 以供审查 编辑 提交到项目存储库 这将很有用 预

随机推荐

  • Linux Socket write() 的错误文件描述符 错误的文件描述符 C

    我对 write 2 函数有一个有趣的问题 PrepareResponseForSetCoordinates 函数会导致写入时出现错误的文件描述符错误 这是错误行 perror 写入套接字时出错 总产量 写入套接字时出错 文件描述符错误 我
  • 一段时间后终止由 exec() 启动的进程并将帧存储在数组中

    首先我要说的是我对 Java 完全陌生 我有 PHP 背景 但碰巧我的一项 PHP 任务需要转换为 Java 该任务是使用 ffmpeg 将视频分割为帧 然后处理这些帧 我已经用 PHP 完成了这个过程 现在我可以将它转换成Java 我浏览
  • 使用 fnmatch.filter 按多个可能的文件扩展名过滤文件

    给出以下一段 python 代码 for root dirs files in os walk directory for filename in fnmatch filter files png pass 如何过滤多个扩展名 在这种特殊情
  • 向 python 服务器添加超时时出现非阻塞错误

    我正在用 python 编写一个简单的 TCP 服务器 并尝试输入超时 我当前的代码 import socket def connect HOST Symbolic name meaning the local host PORT 5007
  • 我可以将 artifactId 转换为我的 Maven 原型中的类名前缀吗?

    我正在创建一个 Maven 原型 并在生成的项目中想要一个以生成的项目的工件 id 命名的类 工件 ID 的格式如下 the project name并且该类应命名为TheProjectNameMain 我尝试在我的archetype me
  • 将base64图像上传到亚马逊s3

    我在尝试将图像上传到 AWS S3 时遇到一些问题 似乎可以正确上传文件 但是每当我尝试下载或预览时 它都无法打开 目前 这是我正在使用的上传代码
  • Flutter Socket.listen()接收不完整数据

    使用套接字接收字符串数据 而且好像传输不完整 服务器发送大约 80 KB flutter 套接字有时接收 1 KB 有时接收 10 KB 左右 尝试了 onDone 处理程序 它是相同的 在接收到整个数据之前调用它 我还尝试将数据分成多个部
  • 将控制台输出重定向到单独程序中的文本框

    我正在开发一个 Windows 窗体应用程序 它需要我调用一个单独的程序来执行任务 该程序是一个控制台应用程序 我需要将标准输出从控制台重定向到程序中的文本框 我从我的应用程序执行程序没有问题 但我不知道如何将输出重定向到我的应用程序 我需
  • 如何查询 firestore() 的 graphQL 解析器?

    我将 GraphQL 应用程序与现有的 Firebase 项目结合起来 在获取查询以正确从 firestore 获取数据时遇到很多问题 到目前为止 我的突变工作正常 但是当我去查询数据时 我无法将 firestore get 快照转换为 g
  • html5 video safari 在播放前下载完整

    我想知道为什么我的 mp4 html5 视频不是 流式传输 而是等到完全下载后才开始在 safari 中播放 www pija se 我已经尝试过 QTIndexSwapper 但它说索引位于正确的位置 任何帮助表示赞赏 看起来 MOOV
  • heroku 上的 Gunicorn:绑定到本地主机

    我一直在关注教程https devcenter heroku com articles django declare process types with procfile https devcenter heroku com articl
  • 替换字符串中的特定单词 (Python)

    我想替换字符串句子中的单词 例如 What noun is verb 用实际名词 动词替换 包括 中的字符的正则表达式是什么 您不需要为此使用正则表达式 我会做 string What noun is verb print string r
  • Google Cloud SQL 连接到 flutter

    我在互联网上呆了 3 天 试图找到一些可以帮助我在 Google Cloud 和我的 flutter 应用程序上设置 PostreSQL 服务器的东西 无论是文档还是互联网上的任何地方都没有关于 flutter 应用程序如何连接 设置甚至在
  • AlarmManager 在模拟器中运行良好,但在真实设备中运行不佳

    这是我设置闹钟的代码 public void SetAlarm Context context int tag long time AlarmManager am AlarmManager context getSystemService
  • 将每 2 个 div 包裹在一个新的 div 中

    假设我有这个 div class somediv div div class somediv div div class somediv div div class somediv div div class somediv div div
  • Qt Designer 不加载我的自定义小部件插件

    我正在阅读 使用 Qt4 进行 C GUI 编程 一书 并且已经达到了将自定义小部件与 Qt Designer 集成的主题 我已经构建了那里概述的示例项目 图标编辑器插件 并且我得到了一个名为 libiconeditorplugin so
  • 如何强制执行新的空 EF 迁移?

    好的 所以我完全依赖我的迁移和种子代码来维护所有数据库结构和初始数据 因此 我面临的情况是 我在此版本中所做的所有更改都是直接在数据库 存储过程和更新 上进行的 并且 C 代码本身没有任何更改 问题是 由于我想使用新的迁移来执行这些数据库特
  • 生产中的 GWT 源映射

    GWT 支持超级开发模式下的源映射 不幸的是 尽管我在 gwt xml 文件中添加了源映射选项 但它们似乎无法在生产模式下工作 如何在那里启用它们 看看 GWT 自己的网站是如何做到这一点的 https gwt googlesource c
  • 如何离线安装Flask? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我已经在我的电脑上下载了 Flask 然后我就断开了连接 现在我需要在没有互联网连接的情况下安装 Flask 离线安装 Flask 还需要什
  • Wildfly 中有多个持久单元?

    Wildfly 9 0 2 应用程序中是否可以有两个持久性单元 我收到 WFLYJPA0061 未指定持久性单元名称 并且应用程序部署部署 jasper web war 中有 2 个持久性单元定义 要么将应用程序部署更改为只有一个持久性单元