У меня есть таблица для каждой иерархии классов, сопоставленная дискриминатором.Это прекрасно работает, но я не уверен, как обращаться с контейнерным классом.
Сценарий: домашнее животное содержит кошку, собаку и кошку, собаку в одном столе.Я нашел решение гибернации, как показано ниже, кредит Крису Полиморфный один-ко-многим .Как я могу сделать то же самое в NHibernate?Особенно вокруг @Where (clause = "dtype = 'Dog'")
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
class Pet { ... }
@Entity
public class Cat extends Pet {}
@Entity
public class Dog extends Pet {}
@Entity
public class Owner {
@Id @GeneratedValue
long id
@OneToMany
@JoinColumn(name="owner_id", insertable=false, updatable=false)
List<Pet> pets
@OneToMany
@JoinColumn(name="owner_id", insertable=false, updatable=false)
@Where(clause="dtype='Dog'")
List<Dog> dogs
@OneToMany
@JoinColumn(name="owner_id", insertable=false, updatable=false)
@Where(clause="dtype='Cat'")
List<Cat> cats
}