Hibernate — @OneToMany сопоставленоBy для наследования абстрактного классаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate — @OneToMany сопоставленоBy для наследования абстрактного класса

Сообщение Anonymous »

У меня есть структура, которая выглядит так:

Код: Выделить всё

@Entity
@Table
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Container {
@Id
private Long id;
}

@Entity
@Table
@PrimaryKeyJoinColumn(name = "id")
public class Component extends Container {

@ManyToOne
@JoinColumn(name = "id_parent_container")
private Container parentContainer;

@OneToMany(mappedBy = "parentContainer")
private Set content = new HashSet();

}

@Entity
@Table
@PrimaryKeyJoinColumn(name = "id")
public class Section extends Container {

@ManyToOne
@JoinColumn(name = "id_parent_section")
private Section parentContainer;

@OneToMany(mappedBy = "parentContainer")
private Set children = new HashSet();

}
Итак, у нас есть два класса: Компонент и Раздел, которые оба являются Контейнерами. Раздел может содержать подразделы и компоненты (т. е. контейнеры), а компонент может содержать только подкомпонент.
Когда я запускаю этот код, у меня возникает следующее исключение:

Код: Выделить всё

org.hibernate.AnnotationException: Collection 'xxx.entities.Section.children' is 'mappedBy' a property named 'parentContainer' which does not exist in the target entity 'xxx.entities.Container'
Все мои классы наследования Container реализуют атрибут родительского контейнера, но я бы не хотел помещать этот атрибут в класс Container. Возможно ли это?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ract-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»