Какую структуру таблицы использовать (в спящем режиме) - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть две сущности: PhisicalPerson (PP), JuredicalPerson (JP).И я хочу создать объект Phone.У JP много телефонов, а у PP много телефонов (отношение один ко многим).Таким образом, в объекте Phone я должен создать 2 столбца для этих отношений:

class Phone {

 @JoinColumn(name="ppId",nullable=true)
 @ManyToOne
 public PhisicalPerson getPhisicalPerson() {...}

 @JoinColumn(name="jpId",nullable=true)
 @ManyToOne
 public JuredicalPerson getJuredicalPerson() {...}

 // number, city code, additional number and other fields

}

Это правильная реализация?Или может быть лучше создать разные сущности: PhisicalPersonPhone и JuredicalPersonPhone?

1 Ответ

2 голосов
/ 03 ноября 2011

Это действительно то, что вы могли бы сделать, но похоже, что у вас здесь есть отношения наследования.

Вероятно, и PP, и JP должны расширять общую базовую сущность Person, а сущность Person должна иметь списоктелефонов.В этом случае объект Phone будет иметь только одну связь ManyToOne с Person.

Это предполагает, что объект Phone должен знать о своем владельце.Может быть, однонаправленная ассоциация будет иметь больше смысла здесь.В этом случае использование таблицы соединения (или двух, если вам не нужны эти отношения наследования), имело бы больше смысла.

...