NHibernate:侦听器和侦听器之间的差异

问题描述 投票:15回答:2

主要查看NHibernate I中所有创建/更新列的可能性(Stackoverflow questionAyende Rahien),请参见使用侦听器的解决方案。

在我公司中对此进行编程的程序员使用拦截器来实现相同的目的。

这两种解决方案之间有区别吗? (是其中之一已过时,是其中之一是首选,优点和/或缺点是什么)

nhibernate listener interceptor
2个回答
17
投票

拦截器是旧的方法,事件监听器是较新的,并且服务器具有相同的用途。因此,在一个新项目中,建议使用事件监听器。您可以连接到新的NHibernate事件系统

编辑:正如Rashack在他的评论中提到的那样,有些操作只能使用拦截器来完成。


0
投票

根据文档,它指出:“如果您必须对持久层中的特定事件做出反应,则还可以使用Hibernate事件体系结构。该事件系统可以用作拦截器的补充或替代。”

两者都有一些区别:

    <<
  1. 拦截器可以通过编程以及声明性方法在会话范围内或在会话工厂范围内使用。另一方面,以声明方式注册的侦听器无法共享实例。如果在多个元素中使用相同的类名,则每个引用将导致该类的单独实例。如果需要在侦听器类型之间共享侦听器实例,则必须使用编程注册方法。

© www.soinside.com 2019 - 2024. All rights reserved.