`
shusanzhan
  • 浏览: 34273 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

spring3 hibernate4 如何支持EventListener 系统操作日志

阅读更多

1、在spring3.1.0发布版本上是否支持Hibernate 4.X版本的EventListener呢?

在spring3.1.0版本,针对hibernate3 通过查看LocalSessionFactroyBean的源码可以知道,有一个eventListenser的属性来设置EventListeners。但是在hibernate4中,查看LocalSessionFactroyBean源码去不支持EventListener。由于spring3.X 对hibernate4不支持这样的配置。我还是按配置hibernate3一样的方法配置hibernate4导致我浪费了一个上午的时间。hibernate4 改变了注册EventListener的方式。

 

2、hibernate4 注册eventListener的方式

1、通过注解方式(测试通过

@Component
public class HibernateEventWiring {

@Autowired
private SessionFactory sessionFactory;

@Autowired
private LogListener logListener;

@PostConstruct
public void registerListeners() {
    EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService(
            EventListenerRegistry.class);
    registry.getEventListenerGroup(EventType.POST_INSERT).appendListener(logListener);
    registry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(logListener);
 registry.getEventListenerGroup(EventType.POST_DELETE).appendListener(logListener);
}
}

2、通过注解方式(未测试)

参考hibernate4 官方开发文档

http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#registering-listeners-example

 

 

分享到:
评论
1 楼 walle1027 2015-04-14  
  感谢,正式需要的

相关推荐

Global site tag (gtag.js) - Google Analytics