奇怪的NHibernate异常:“未初始化的代理传递给save()."由工厂事件配置引起 [英] Bizarre NHibernate exception: 'Uninitialized proxy passed to save().' caused by factory event configuration

查看:161
本文介绍了奇怪的NHibernate异常:“未初始化的代理传递给save()."由工厂事件配置引起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用以下配置Xml,仅存在不包含任何重载或扩展行为的自定义DefaultSaveEventListener子类 就足以在刷新或提交事务时触发此异常异常. >

There mere presence of a custom DefaultSaveEventListener subclass containing no overidden or extended behaviour is enough to trigger this bizarre exception for me when flushing or committing a transaction, using the following configuration Xml:

<event type="save-update">
    <listener class="MyNamespace.MyCustomSaveEventListener, MyAssembly" />
</event>

如果我注释掉上面的内容,它就可以正常工作.但是就像我说的那样,即使没有定义覆盖或扩展的事件侦听器行为,也会发生这种情况.我知道这些<event>元素似乎并没有添加到默认的NHibernate配置中,因此,此元素中配置的内容将替换所有其他内容,因此是从默认实现派生的常规做法.

If I comment out the above, it works fine. But like I say, this occurrs even though there is no overridden or extended event listener behaviour defined. I am aware that these <event> elements don't appear to be additive to the default NHibernate configuration, so whatever is configured in this element replaces everything else, hence the common practice of deriving from default implementations.

该异常发生在ReassociateIfUninitializedProxy方法内的类NHibernate.Event.Default.DefaultSaveOrUpdateEventListener中.即使仅注册了此侦听器,并且从工厂配置中删除了所有其他侦听/扩展,也会发生这种情况.

The exception occurs in the class NHibernate.Event.Default.DefaultSaveOrUpdateEventListener within the ReassociateIfUninitializedProxy method. It occurs even with only this listener registered and all other interception/extensions removed from the factory configuration.

有人对此有任何想法吗?我需要使用此侦听器接口实现一些扩展的行为.捕获异常并将其丢弃似乎不会造成任何损害,但是返回值应该是什么?

Anybody any ideas on this? I need to implement some extended behaviour using this listener interface. Catching the exception and throwing it away doesn't appear to do any damage but what should the return value be?

推荐答案

Whoops源自DefaultSaveEventListener而不是DefaultSaveOrUpdateEventListener ...更改超类使问题消失了-应该睁大眼睛.

Whoops was deriving from DefaultSaveEventListener instead of DefaultSaveOrUpdateEventListener ... changing the superclass made the problem go away - should open my eyes.

这篇关于奇怪的NHibernate异常:“未初始化的代理传递给save()."由工厂事件配置引起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆