如何在jpa监听器中获取实体管理器或事务

2024-04-06

我正在使用 Hibernate 事件侦听器,例如PostDeleteEventListener, PostInsertEventListener, PostUpdateEventListener在插入、删除和更新期间执行一些操作。现在我想使用 JPA 侦听器来执行此操作,因为如果我想从 Hibernate 迁移到任何其他 JPA 提供程序,我的侦听器应该可以工作。 Hibernate监听器给了我event我可以从中获取事务并检查其是否已提交或回滚。 JPA 侦听器仅向我提供实体对象。现在我怎样才能在 JPA 监听器中获取事务或会话或实体管理器?提前致谢!!我使用 Jboss 作为我的 CMT。


从 JPA 2.0 开始不支持此功能。

在 JPA 2.1(预计在 Java EE 7 中)中,持久性提供程序将在托管环境(例如 JBoss 应用服务器)中将实体侦听器视为 CDI bean。来自JPA 2.1 规范的拟议最终草案 http://java.net/downloads/jpa-spec/JavaPersistencePFD.pdf,第 96 页:

Java EE 环境中的实体侦听器类支持依赖关系 通过上下文和依赖注入 API (CDI) 进行注入 [10] 当包含的存档是 bean 存档时。实体监听器 使用 CDI 注入的类也可以定义生命周期 用 PostConstruct 和 PreDestroy 注释的回调方法 注释。这些方法将在注入完成后被调用 实体侦听器实例被销毁之前的位置 分别

因此,在 JPA 2.1 中,如果您创建一个提供 EntityManager 的 CDI 生产者(只需使用 @Produces 注解 @PersistenceContext 字段),您只需将 EntityManager @Inject 到侦听器中即可。

与此同时,我不知道有任何干净或令人愉快的解决方法。我能想到的“最糟糕”的事情是将 EntityManager 配置为绑定在 JNDI 中,然后通过侦听器内的 JNDI 查找来获取它。

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

如何在jpa监听器中获取实体管理器或事务 的相关文章

  • IntelliJ Ultimate 在 Play 2.3 (Java) 项目测试中找不到路由

    虽然我的测试运行得很好 但 IntelliJ 抱怨它找不到路由对象 并且代码自动完成无法工作 我已经查看了所有文档 这应该可以工作 这是 IntelliJ 的报告内容 关于我的项目配置可能有什么问题有什么想法吗 这很可能与以下事实有关 ro
  • 具有最小刻度的图表的漂亮标签算法

    我需要手动计算图表的刻度标签和刻度范围 我知道漂亮刻度的 标准 算法 参见 我也知道这个Java实现 http erison blogspot nl 2011 07 algorithm for optimal scaling on char
  • 到底什么是哈希冲突

    HashMap 中的哈希冲突或哈希冲突并不是一个新主题 我遇到过几个博客和讨论板 以模糊且详细的方式解释如何产生哈希冲突或如何避免它 我最近在一次采访中遇到了这个问题 我有很多事情要解释 但我认为很难准确地给出正确的解释 抱歉 如果我的问题
  • 在 SWT 中单击鼠标触发事件?

    在SWT中 对于MouseListener接口 可用的方法有mouseUp mouseDown and mouseDoubleClick 如何根据用户点击触发事件 我们可以通过结合来做到这一点mouseUp and mouseDown 但没
  • Tomcat - 多个 webapps 文件夹

    是否可以有多个文件夹来放置要部署的应用程序 这些是如何定义的 是否可以将一个文件夹限制为仅是 domain com 的应用程序 而不是其他域 Thanks 看一眼conf server xml
  • 如何知道 glassfish 是什么 - 完整平台或网络配置文件?

    我已经安装了glassfish 我可以跑 asadmin version 它显示了它是什么版本 但如何知道它是 完整平台 还是 Web 配置文件 你可以使用 glassfish4 bin gt asadmin list containers
  • a4j:commandLink 重新渲染后停止工作

    我创建了这个测试用例来隔离我的问题 一旦轮询执行 ajax 更新 a4j commandLink 操作就不会执行 如果我们在轮询重新渲染之前关闭 modalPanel 则会执行它 有什么建议吗 提前致谢 测试 xhtml
  • 维护插入顺序的并发集合[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以维护插入顺序的并发列表 有人有什么好的推荐吗 我看一些番石榴 例如SetFromMa
  • Java检测鼠标长按

    如果用户按下 JList 组件超过 3 秒 有什么方法可以捕获事件吗 我发现困难的部分是即使在用户松开鼠标左键之前也需要触发事件 这可以通过 mousePressed 和 mouseReleased 组合轻松完成 您可以在 mouseDow
  • Spring Boot 多部分文件始终为 null

    我正在使用 Spring Boot version 1 4 0 RC1 和 Spring Boot Stormpath 1 0 2 我正在尝试使用分段文件上传 但控制器中的 MultipartFile 始终为空 当我使用 RequestPa
  • 读取不失真的灰度 PNG 图像文件

    我需要读取和处理大量的灰度 PNG 文件 我的意思是 如果它们在 Photoshop 或 GIMP 中打开 则图像模式为灰度 而不是具有灰度值的 RGB 图像 ImageIO 似乎没有实现这一点 它似乎将所有图像文件视为 sRGB 这会破坏
  • Java 泛型:将 Object o 的类与 进行比较

    假设我有以下课程 public class Test
  • iText7 将 SVG 添加到 PdfDocument 中以及可能出现的问题

    关于问题的答案 如何使用 iText7 将 SVG 添加到 PDF 这是一个链接点击这里 https stackoverflow com questions 50059456 how to add an svg to a pdf using
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • 将字符串转换为字符并按降序排序(ascii)

    我正在创建一个程序 该程序将使用户输入整数 一个接一个 存储在数组中并按降序显示整数 该程序还要求用户输入一个字符串 使用以下命令将其转换为字符string toCharArray 我已经正确地按降序显示整数 问题是我不知道如何按降序显示字
  • 使用 InputStream 通过 TCP 套接字接收多个图像

    每次我从相机捕获图像时 我试图将多个图像自动从我的 Android 手机一张一张地发送到服务器 PC 问题是read 函数仅在第一次时阻塞 因此 从技术上讲 只有一张图像被接收并完美显示 但在那之后当is read 回报 1 该功能不阻塞
  • 有没有办法处理Java堆空间异常[重复]

    这个问题在这里已经有答案了 我正在寻找将文件输入流转换为大文件 文件大小为 100MB 并且抛出 java lang OutOfMemoryError Java Heap space import java io FileInputStre
  • 从数字列表中生成所有唯一对,n 选择 2

    我有一个元素列表 假设是整数 我需要进行所有可能的两对比较 我的方法是 O n 2 我想知道是否有更快的方法 这是我在java中的实现 public class Pair public int x y public Pair int x i
  • 在java中打印阿拉伯字符串

    我试图在 java 中显示阿拉伯语文本 但它显示垃圾字符 示例 或有时在我打印时仅显示问号 我如何才能打印阿拉伯语 我听说它与unicode和UTF 8有关 这是我第一次使用语言 所以不知道 我正在使用 Eclipse Indigo IDE
  • 在没有 ODBC 的情况下从 Java 操作 Access 数据库

    我想从我的 Java 项目操作 Microsoft Access 数据库 accdb 或 mdb 文件 我不想使用 Microsoft 的 JDBC ODBC Bridge 和 Access ODBC 驱动程序 因为 JDBC ODBC 桥

随机推荐

  • Spark:创建嵌套架构

    伴随着火花 import spark implicits val data Seq 1 value11 value12 2 value21 value22 3 value31 value32 val df data toDF id v1 d
  • 使用 cURL 访问 API 可以正常工作,但使用 Fetch API 则不行 [重复]

    这个问题在这里已经有答案了 我知道这个问题已经得到解决lotSO 上的次数 但所有答案大多都是 向服务器添加某个标头 在这种情况下 API Shopify 工作得非常好 并且可以通过curl轻松访问 我已经使用 Axios 库和 Fetch
  • 如何动态刷新 .NET 数据绑定转发器控件

    我有一个 NET repeater控制即data bound到一个列表 作为中继器的一部分Item Collection 我有一个 删除按钮 可以有效地删除当前的列表元素 这有效 在代码隐藏中我可以成功地从datasource of the
  • 在React中,如何防止组件的CSS导入应用于整个应用程序?

    我在用着Facebook 的 create react 应用 https github com facebookincubator create react app对于我的应用程序 在我的 Login js 容器中 我像这样导入 CSS i
  • 使用 jquery 动态添加画布

    我已将所有代码包含在这个小提琴中 http jsfiddle net RymyY http jsfiddle net RymyY 我的问题涉及左侧的 添加形状 按钮 我希望每次单击第二个添加按钮时都能够添加一个新画布 但我无法让它工作 类似
  • OpenOffice pyno“全选”

    有谁知道如何使用 OO uno 桥接 api 在 Calc 工作表中 选择全部 或者 找到最大使用的行数和列数也可以 我想要做的是将格式应用于电子表格中的所有单元格 原因是我将工作表保存为 csv 因此除非格式提供足够的小数位 否则数字不会
  • 将 Expression> 通用拆箱为 Expression>

    正如标题中提到的 我有一个表达式 其中结果类型 存储 在object 这可以是all我的域类 有没有办法得到具体的表达方式 拆箱 如果我正确理解你的问题 你可能正在寻找的是表达式 转换 http msdn microsoft com en
  • Vue Native 始终执行 App.js 而不是 .vue

    我做了vue native安装的第一个过程 我正在遵循 入门 Hello world教程 https vue native io getting started html https vue native io getting starte
  • 根据文件的第二列对数据进行排序

    我有一个 2 列的文件n行数 第 1 列包含names和第2列age 我想根据以下内容按升序对该文件的内容进行排序age 在第二列 结果应该显示name最年轻的人以及name然后是第二年轻的人等等 关于单行 shell 或 bash 脚本的
  • 如何从 C++ 中加载和调用 VBScript 函数?

    我们的客户要求在我们的产品中发生特定操作时调用 VBScript 函数 我一直在尝试研究 Windows 脚本技术 但很难找到我真正需要的东西 希望你们中的一些人能够提供帮助 我们的产品是原生 C Windows 产品 客户将指定一个 VB
  • 将 sinon 模拟与 nodeunit 一起使用

    我正在学习使用 sinon 与nodeunit https github com caolan nodeunit 专门做嘲笑 这推荐方法 http sinonjs org nodeunit 是使用正节点单元 https github com
  • 如何提取html注释和节点包含的所有html?

    我正在创建一个小型网络应用程序来帮助我管理和分析网站内容 而 cURL 是我最喜欢的新玩具 我已经弄清楚如何提取有关各种元素的信息 如何查找具有特定类的所有元素等 但我遇到了两个问题 见下文 我希望有一些漂亮的 xpath 答案 但如果我必
  • 如何将字符串中的元音更改为符号?

    我需要使用 C 将字符串中的元音更改为 我知道我需要使用 for 循环 并且我很确定我走在正确的轨道上 但我无法让它工作 这是我的代码 include
  • 用于计算拉力赛速度图的数据[重复]

    这个问题在这里已经有答案了 我正在开发一个项目 从拉力赛中提取数据并创建速度图表 我了解要使用的 REST Web 服务 API 是缺陷 迭代 分层需求和迭代累积流数据 但是您能否告诉我如何进行实际计算来计算特定项目的每次迭代速度 需要什么
  • 使用 Clang AST 打印函数的参数

    我想将参数传递给函数 例如 如果我接到电话 printf d d i j 输出应该是 d dij 我可以使用 RecursiveASTVisitor 中的 VisitCallExpr 进行函数调用 还能够获取参数数量和参数类型 但我不知道如
  • 使用 jQuery ajax 响应数据

    我正在使用 ajax post 并接收 html 形式的数据 我需要拆分数据并将数据片段放置在整个页面上 我将响应数据构建为类似的 p Hello there and Welcome p p First timer visiting our
  • Uploadify 在 Chrome 10 中突然完全停止工作

    我正在使用 Uploadify 来允许在我的网络应用程序中上传多个文件 它始终适用于 IE 7 8 9 FF 3 6 Safari 和 Chrome 今天我偶然发现它在每个浏览器中都可以工作 但在 Chrome 中却不行 我目前使用的是 C
  • 是否可以隐藏弹性图表的轴并且使其不占用任何空间?

    是否可以告诉 flex 显示没有可见轴的图表 我希望图表的内容占据所有可用空间 我可以将 AxisRenderer 上的可见性设置为 false 这将隐藏轴 但会在轴通常所在的位置留下一个空白空间 我怎样才能删除这个空白区域
  • 在 .NET Core 中的 Web 请求中使用 NTLM 身份验证

    Update事实证明 我所需要做的就是升级到 NET Core 2 1 感谢大家的解决方案 我有一个 NET Core 2 0 控制台应用程序 需要向使用 Windows 身份验证 特别是 NTLM 的 API 发出 Web 请求 这是我公
  • 如何在jpa监听器中获取实体管理器或事务

    我正在使用 Hibernate 事件侦听器 例如PostDeleteEventListener PostInsertEventListener PostUpdateEventListener在插入 删除和更新期间执行一些操作 现在我想使用