是否有一种方法知道一个实体是否已经被NHibernate管理

本文关键字:是否 实体 管理 NHibernate 一个 一种 方法 | 更新日期: 2023-09-27 18:15:38

我有一堆实体,我想知道哪一个已经保存()与NHibernate(没有冲洗尚未)。

是否有一种方法知道一个实体是否已经被NHibernate管理

根据Hibernate的文档,Session有一个叫做Contains(obj)的方法。

boolean contains(Object object)
    Check if this instance is associated with this Session.
Parameters:
    object - an instance of a persistent class
Returns:
    true if the given instance is associated with this Session

好吧,我想这应该在您的情况下工作,因为您的新创建的对象在调用Save(或Get)之前不会与ISession接触。试一试,告诉我们会发生什么。

另一种选择是在session之上创建一个抽象,并实现自己的代码来检查实体是否已经保存。

如果你想知道是否有东西被NHibernate持久化了你可以检查'ID'字段,看看它是否从默认值

改变了