2016-12-30 3 views
0

Я думал, что я понимаю отношения. Но теперь .. Я не уверен. У меня есть проблема с добавлением правильных аннотаций.JPA отношение OneToMany

У меня есть классы Участники и отношения.

В отношениях

private GT_Member Mother; 

private GT_Member Father; 

private List<GT_Member> children; 

Один член может быть в нескольких отношениях, как мать или отец (ссылка на его пола), но он может быть только в одном отношении, как ребенок.

Я думал, что Аннотировать мать и отца как @OneToMany.

Но я не уверен, могу ли я аннотировать список как @OneToOne ??

ответ

1

Это похоже на проблему моделирования правильной модели сущности-привязки для вашей схемы базы данных и визуализации вашего ORM (Object Relationship Model).

Вместо того, чтобы начинать с классов Участники и отношения, пожалуйста, сначала посмотрите, какие доминирующие объекты данных в вашей системе. И как они будут связаны друг с другом. Лично я не думаю, что отношения были бы хорошей сущностью JPA. Член больше похож на хорошую сущность и может воплощать отношения Предполагая, что один отец и одна мать, от одного до многих, кажется неправильным, но поскольку у отца или матери может быть много детей, правильная аннотация должна быть @ManyToOne.

Дети определенно OneToMany, и да, вы можете аннотировать список детей как @OneToMany.

член может иметь следующие свойства:

@Entity 
    public class Member implements Serializable{ 
    @ManyToOne 
    private Member mother; 
    @ManyToOne 
    private Member father; 
    @OnetoMany 
    private List<Member> children; 
} 

Это решает как прецеденты и в этом простом классе пример Relation не требуется. надеюсь, что это поможет.

+0

Приобретение объекта связи связано с тем, что я хочу сохранить информацию о статусе отношения. Donc Я буду хранить информацию обо всех женатых и т. Д. Отношение сущности имеет другие поля типа типа (нейтральный, женат, жених и т. Д.). – VANILKA

+0

Хмм, это кажется интересной проблемой для моделирования внутри объекта. информация, которую вы предоставляете, более полезна. Но даже в этом случае вы можете избежать наличия отдельного объекта отношения, указав это многозначное имя, называемое семейным статусом (одиноким, женатым, занятым), а затем другим полем типа Member partner; это может быть недействительным (если статус брака не установлен), фактический член (является семейным статусом женат или занимается). – Gangz

0

Занятость объекта связи - это то, что я хочу сохранить информацию о статусе отношения. Donc Я буду хранить информацию обо всех женатых и т. Д. Отношение сущности имеет другие поля типа типа (нейтральный, женат, жених и т. Д.).

+0

Пожалуйста, ответьте только в этом разделе – SpringLearner

Смежные вопросы