ну, это зависит от реализации.
Если, например, у вас есть столбец дискриминатора (скажем, <discriminator column="CatType" type="string"/>
и класс-наследник DomesticCat
различается со значением "domestic"
), вы можете сделать запрос, подобный этому
var allCatsButDomestic = nhSes.CreateQuery("from Cat c where c.CatType <> :catType")
.SetString("catType", "domestic")
.List<Cat>();
(в данном конкретном примере абстрактный класс Cat также отображает столбец CatType в свойство строки CatType)
РЕДАКТИРОВАТЬ и в форме критериев
var nonDomesticCats = session.CreateCriteria<Cat>()
.Add(Restrictions.Not(Restrictions.Eq("CatType", "domestic")))
.List<Cat>();
Ваш комментарий о AnotherCat снова подразумевает, что существует некоторый способ различения сущностей на уровне БД.