|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Не работает в таком виде, т.к. требует чтобы в OneToOne targetEntity была сущность. Если туда поставить DBObject, то работает, но промежуточный Subject не принимает. Есть идеи как реализовать без создания дополнительной избыточной таблицы для Subject? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 13:14 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexus, Зачем вам наследование, если его в базе нету? Зачем вам один к одному, если в базе в этом нет смысла? Если у вас адрес Сущность важная по бизнесу, то делаете таблой. Если нет, то это поле у класса юзверь. Imho ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 13:37 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexus, а это "targetEntity = Subject.class" зачем? у меня где то похожая на Вашу, конструкция работала без таблицы для @MappedSuperclass, но конечно с таблицей для DBObject, который у меня не абстрактный ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 14:19 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
Kachalovpublexus, а это "targetEntity = Subject.class" зачем? Чтобы обозначить, что tenant - это Person или Organization. Если установить подставить targetEntity = DBObject.class, то туда можно сохранить, например, Adress, что является логически неверным. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 15:54 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
Petro123publexus, Зачем вам наследование, если его в базе нету? Зачем вам один к одному, если в базе в этом нет смысла? Если у вас адрес Сущность важная по бизнесу, то делаете таблой. Если нет, то это поле у класса юзверь. Imho 1. Условное наследование есть и в базе в виде каскадных таблиц: DBObject - таблица с общими данными для всех типов объектов, таблица Person, связанная по основному ключу с DBObject с параметрами и т.д. 2. На самом деле там ManyToOne, просто с другой стороны не будет референса, поэтому сделано для упрощения. 3. Все неабстрактные сущности являются таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 16:02 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexus, 1. Я тебе говорю что СУБД ничего не знает о наследовании. А ты про свое что у собаки есть реально пятая нога. Можно пришить, но это никчему. В ООП нужно наследование. И то не всегда. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2018, 19:14 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
Petro123, Причем тут "СУБД ничего не знает о наследовании"? Я спрашивал о том, как это реализовать в Java. А наследование в приведенном примере необходимо по модели данных и бизнес-логике. Потому что необходимо оперировать так называемыми суперсущностями (абстрактными классами сущностями являющихся суперклассами конечных сущностей), как например ВDObject или Subject. Например, по адресу может находиться как физ.лицо так и организация. Провайдер данных на основе id и DiscriminantValue соберет сущность необходимого типа из нескольких таблиц. Если не вводить Subject, а указать тип резидента DBObject, то туда можно запихнуть любой объект, наследованный от DBObject (например тот же адрес), что неверно по логике, т.к. там должны быть только физ.лицо или организация. Поэтому и вводиться Subject. Помимо, того при запросе суперсущности ВDObject провайдер Hibernate вместо того, чтобы сначала вытянуть из базы DiscriminantValue, а затем собственно данные из необходимых таблиц, вместо этого он просто джойнит все таблицы иерархии в одном громадном запросе (выполняя обращения к заведомо ненужным таблицам). А как результат введения Subject предполагается, что в запросе будут только таблицы данных физ.лица так и организации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 16:04 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexusПричем тут "СУБД ничего не знает о наследовании"? Я спрашивал о том, как это реализовать в Java.а образование у вас есть? - закон ОРМ одна сущность это таблица. - сущность физЛицо и Организации это разные сущности. Отсюда ваше "комбинируем сущность из двух таблиц" выглядит нелогичным. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 17:57 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexus, Нарисуйте Модель со связями. Либо позовите Разработчика БД, а не java программиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 17:59 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexusЕсли не вводить Subject,сущность понятие от бизнеса. В бухгалтерии есть Контрагент. Который может быть физЛицом и Организацией. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 18:38 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
Ну и вот ссылка на возможности хибера. Т.е. идете от субд, орм, хибер, jpa. А не от того что хочет java. https://samsonych.com/lib/hibernate/inheritance.html Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2018, 19:24 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
[quot Petro123]publexusзакон ОРМ одна сущность это таблица. Ну не знаю, может быть это какой-то старославянский языческий закон... У нас успешно используется Inheritance, ElementCollection и одна сущность, за исключением разве что самых простых, как правило, состоит из целого набора таблиц. В реляционных базах всегда примерно так и бывает. Может вы путаете с каким-то другим типом баз, например документоориентированной MongoDB. [quot Petro123]publexusТ.е. идете от субд, орм, хибер, jpa. А не от того что хочет java. И с этим не согласен. Надо идти от требуемой бизнес модели к объектной Java модели, и лишь затем на основе требуемых для хранения данных к структуре БД. Это идеальный вариант, но, иногда, на этапе разработки Java модели требуется учитывать некоторые компромиссы, связанные с особенностью конкретной СУБД или производительностью доступа к данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 09:55 |
|
JPA relation for enttity superclass
|
|||
---|---|---|---|
#18+
publexusУ нас успешномодель то где? Можно и из даты 3 сущности с дуру построить. Год, месяц и день. А снизу абстрактных предков и сбоку интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2018, 12:39 |
|
|
start [/forum/topic.php?fid=59&msg=39679844&tid=2121876]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 205ms |
0 / 0 |