Spring管理的Hibernate事件监听器

Hibernate提供事件监听器作为其SPI的一部分。 您可以将您的侦听器挂接到许多事件,包括插入前,插入后,删除前,刷新等。

但是有时在这些侦听器中,您想使用spring依赖项。 我之前已经写过有关如何执行此操作的文章 ,但是休眠已升级,现在有了更好的方法(由于缺少类,旧方法在最新版本中不起作用)。

这次更简单了。 您只需要一个看起来像这样的bean:

@Component
public class HibernateListenerConfigurer {@PersistenceUnitprivate EntityManagerFactory emf;@Injectprivate YourEventListener listener;@PostConstructprotected void init() {SessionFactoryImpl sessionFactory = emf.unwrap(SessionFactoryImpl.class);EventListenerRegistry registry = sessionFactory.getServiceRegistry().getService(EventListenerRegistry.class);registry.getEventListenerGroup(EventType.POST_INSERT).appendListener(listener);registry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(listener);registry.getEventListenerGroup(EventType.POST_DELETE).appendListener(listener);}
}

它类似于这个stackoverflow的答案 ,但是它不起作用,因为它也依赖于过时的calscals。

您也可以注入List<..>侦听器(尽管它们不共享公共接口,但是您可以定义自己的侦听器)。

正如SO答案中指出的那样,您不能在侦听器中存储新实体,因此,例如,注入DAO是没有用的。 但是处理不依赖当前会话的信息可能会很方便。

翻译自: https://www.javacodegeeks.com/2016/07/spring-managed-hibernate-event-listeners.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过bios修改服务器ipmi配置,Dell服务器之配置ipmi远程console管理

1.启动服务器&#xff0c;按F2键进入BIOS设置Serial Communication:Serial Communication......On with Console Redirection via COM2External Serial Connector...COM22.进入系统&#xff0c;修改/boot/grub/menu.1stdefault2timeout15kernel /boot/kernel ro root/dev/sda1 …

分形艺术照

分形艺术照编辑 分形艺术照其实是分形艺术图形的另一种称呼。分形艺术图形的创作依赖于计算机强大的计算能力&#xff0c;将数学公式迭代运算&#xff0c;最终把计算结果以图形显示出来。这样得到的图形&#xff0c;结合创作者的色彩搭配以及变换组合&#xff0c;能产生出具有强…

热像仪 二次开发 c++_重庆多功能红外线热像仪方案

重庆多功能红外线热像仪方案 yuve4uj重庆多功能红外线热像仪方案 同时&#xff0c;中文人机对话对识别与合成、自然语言理解、对话管理以及自然语言生成等研究起到的推动作用。月日&#xff0c;我们开始建立个智能方舱&#xff0c;目的是防止武昌的工作人员感染病。该病房于月日…

C语言-第8课 - 注释符号

第8课 - 注释符号 C语言中的符号符号 名称 符号 名称 符号 名称 符号 名称 , 逗号 ( 左圆括号 ^ xor(异或) \ 反斜杠 . 圆点 ) 右圆括号 - 减号 ~ 波折号 ; 分号 [ 左方括号 < 左尖括号 # 井号 : 冒号 ] 右方括号 > 右尖括号 &…

运行错误5无效的过程调用或参数_FANUC系统常用参数汇总

FANUC机床常用参数简介1、1-999:有关通讯、远程诊断、数据服务参数。如&#xff1a;0000#11程序输出格式为ISO代码10310数据传送波特率204 I/O通讯口&#xff08;用CF卡&#xff09;138#71用存贮卡DNC2.1000-1200&#xff1a;轴控制/设定单位的参数。如&#xff1a;1001.0公/英…

上传文件ajax,ajax 文件上传

ajax 文件上传用户名:文件:

WPF 实现水纹效果

WPF 实现水纹效果 原文:WPF 实现水纹效果鼠标滑过产生水纹&#xff0c;效果图如下&#xff1a; XMAL就放置了一个img标签 后台主要代码 窗体加载&#xff1a; private void Window_Loaded(object sender, RoutedEventArgs e) { Bitmap bmp Properties.Resources.water; ww ne…

OutOfMemoryError:无法创建新的本机线程–神秘化的问题

正如您从我以前的教程和案例研究中可能已经看到的那样&#xff0c;要确定和解决Java Heap Space OutOfMemoryError问题可能很复杂。 我从Java EE生产系统中观察到的常见问题之一是OutOfMemoryError&#xff1a;无法创建新的本机线程&#xff1b; HotSpot JVM无法进一步创建新的…

Linux makefile 教程 非常详细,且易懂

最近在学习Linux下的C编程&#xff0c;买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊&#xff0c;可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来&#xff0c;方便学习。 后记&#xff0c;看完发现这篇文章和《Linux环境下的C…

java的string访问某个元素_C#深究.net常用的23种设计模式之访问者模式(Vistor Pattern)...

一、引言在上一篇博文中分享了责任链模式&#xff0c;责任链模式主要应用在系统中的某些功能需要多个对象参与才能完成的场景。在这篇博文中&#xff0c;我将为大家分享我对访问者模式的理解。二、访问者模式介绍2.1 访问者模式的定义访问者模式是封装一些施加于某种数据结构之…

卸载 系统打印服务器,win10系统打印机驱动卸载不掉的方案介绍

win10系统使用久了&#xff0c;好多网友反馈说win10系统打印机驱动卸载不掉的问题&#xff0c;非常不方便。有什么办法可以永久解决win10系统打印机驱动卸载不掉的问题&#xff0c;面对win10系统打印机驱动卸载不掉的图文步骤非常简单&#xff0c;只需要1、开始-设备和打印机&a…

1007

package com.company;import java.util.ArrayList; import java.util.Scanner;public class Main {public static void main(String[] args) {// write your code hereScanner scnew Scanner(System.in);int Nsc.nextInt();int[] numnew int[N];//N以内的所有数int i;ArrayList…

Apache ActiveMQ中的消息级别授权

尽管上一篇文章介绍了“代理级身份验证”&#xff0c;但该博文是关于消息级更严格的授权的。 我在现实生活中的项目中并没有这么精细的授权&#xff0c;但是我想自己做&#xff0c;并为读者提供一个教程&#xff0c;以扩展他们对ActiveMQ中安全性的了解并简化他们的工作。 有…

14章总结

一.lambda表达式 1.lambda表达式简介 lambda表达式不能独立执行&#xff0c;因此必须实现函数式接口&#xff0c;并且会返回一个函数式接口的对象。 语法&#xff1a; ()->结果表达式 参数->结果表达式 (参数1&#xff0c;参数2&#xff0c;...&#xff0c;参数n)->…

一个最简单的Makefile例子(转)

原文地址&#xff1a;http://hi.baidu.com/hellosim/blog/item/42e78341b40c3e8db2b7dce3.html 转载请注明出处 1.hello.c #include <stdio.h> int main() { printf("Hello World!\n"); return 0; } 2.Makefile hello : hello.o cc -o hello h…

python基础知识资料包-Python基础知识总结——史上最全系列

一、数据类型 1、可变数据类型 a.列表(list) 列表的系列函数&#xff1a; ①append():元素的追加&#xff0c;在列表的末尾添加新的值 列表名.append(新增的值) ②insert(下标&#xff0c;值)&#xff1a;在指定下标插入指定的值 列表名.insert(下标&#xff0c;值) ③count(值…

提高速度 - MyEclipse配置

http://jingyan.baidu.com/article/f3ad7d0fddec3b09c3345ba6.html 转载于:https://www.cnblogs.com/7q4w1e/p/9706376.html

暗时间(普通的一种时间概念)

收藏18354暗时间&#xff08;普通的一种时间概念&#xff09;编辑 暗时间简单的说就是思维的时间&#xff0c;也就是没有产生直接成果的时间。一个人走路、买菜、洗脸洗手、坐公车、逛街、出游、吃饭、睡觉&#xff0c;所有这些时间都可以成为“暗时间”&#xff0c;你可以充分…

ZOJ 1586 QS Network

题目链接 QS NetworkTime Limit: 2 Seconds Memory Limit: 65536 KBSunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the planet w-503 of galaxy cgb, there is a kind of intelligent creature named QS. QScommunicate with e…

javaone_JavaOne 2012:101种改进Java的方法-开发人员参与为何如此重要

javaoneBruno Souza &#xff0c; Martijn Verburg和Heather Vancura在希尔顿酒店的美国大陆宴会厅4中展示了“ 101种改善Java的方法&#xff1a;开发人员为何如此重要”。 他们将其分为自己最熟悉的领域。 SouJava的创始人兼协调员 Souza谈到了通过用户组的更大参与。 Verberg…