关于 NHibernate 监听器的问题

Questions about NHibernate listeners

我在网上找到了一些关于 NHb 听众的信息,比如这个文档: http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/event/package-summary.html,但详细了解它们的工作原理还不够。这是关于 PostUpdateEventListener 我找不到答案的问题:

1) 当我们调用 Session.Save(entity) 时没有对实体进行任何更改,我的意思是当没有 SQL 数据库上的更新脚本 运行 时,它不是真的 运行 ?如果是这样,是否有任何 Nhb event/listener 来跟踪实际的数据库更新,仅在数据库上使用 UPDATE 语句 运行ning?如果有任何区别,我们的实体配置为 DynamicUpdate()

2) 如果我们有单独的嵌套实体,如 [Name](不是组件,存储在单独的 table)或实体列表,我们的监听实体(如 [Person])引用了这些实体会怎样?现在我们在不对 [Person] 实体属性进行任何更改的情况下更新人名。如果我们 运行 Session.Save(person),是否会为 [Person] 调用 PostUpdateEventListener,或者它 运行 只为 [Name] 调用一次?

也许有人可以给我 link 一个描述清晰的在线文档,详细解释听众并回答这样的问题。谢谢

我在实践中发现了这一点,为了后代,这里有答案:

1) 只要没有对数据库进行实际更改,PostUpdateEventListener 就不会真正 运行,即使您 运行 Flush 显式

2) PostUpdateEventListener 运行s 仅适用于 [Name],以防它是一个实体。如果 [Name] 是一个组件,PostUpdateEventListener 运行s for @event.Entity is [Person] 显然。