Hibernate: Использовал mappedBy для класса, который расширяет другой класс, аннотированный как JoinedSubclass?
Следующее не работает:
@Entity
class Owner {
@OneToMany(mappedBy="owner", cascade = {CascadeType.ALL})
protected Set<B> getBSet() {
..
}
}
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
class A {
@ManyToOne
public Owner getOwner() {
...
}
}
@Entity
class B extends A {
}
Это вызывает исключение как таковое: org.hibernate.AnnotationException: mappedBy ссылается на неизвестное целевое свойство объекта: B.user в Owner.
Я пытаюсь избежать копирования свойства "владельца" в класс B (который, следовательно, "денормализует" и скопирует ключ владельца в обе таблицы, созданные для объектов A и B). Кроме того, я действительно хотел бы иметь A и B в отдельной таблице и не использовать дискриминатор при использовании наследования SingleTable.
Кроме того, я не могу понять, как сделать нечто подобное, используя @OneToOne между A и B (и не имея B, расширяющего A).