我认为这是一个简单的问题,但我的谷歌搜索对此很薄弱。
关于生成的 ID 和级联,我遇到了以下链接中描述的问题:
https://www.hibernate.org/hib_docs/nhibernate/html/example-parentchild.html(朝向底部)
我使用他们建议的拦截器方法修复了它。一切似乎都在工作,所以我很高兴。
也就是说,我不知道返回值的意义是什么,例如:
public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)
{
if (entity is Persistent) ((Persistent)entity).OnLoad();
return false;
}
public override bool OnSave(object entity, object id, object[] state, string[] propertyNames, IType[] types)
{
if (entity is Persistent) ((Persistent)entity).OnSave();
return false;
}
在这两种情况下都返回 false。
当我在谷歌上搜索 NHibernate 拦截器时,我看到了很多关于如何编写拦截器的示例。有些反而返回 true ( http://www.lostechies.com/blogs/rhouston/archive/2008/03/27/creating-a-timestamp-interceptor-in-nhibernate.aspx )。我不知道这里有什么区别。我的代码正在运行,但拦截器对我来说似乎很有用,所以我想更好地理解。