|
|
|
JPA наследование сущности с сохранением конфигурации
|
|||
|---|---|---|---|
|
#18+
Структура объектов с использованием Spring Data JPA. Есть таблица RELATION - содержит экземпляры связей всех типов с общими для всех связей полями Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Есть детализирующие таблицы, описывающих дополнительные поля различных типов связей, у которых первичный ключ связан внешним ключом с RELATION, например Код: java 1. 2. 3. 4. В программе я использую экзепляры SimpleRelation, например, когда я сохраняю SimpleRelation, то прокси автоматически создает запись в двух таблицах RELATION и SIMPLE_RELATION. Все было нормально пока у каждого типа связи была своя детализирующая таблица, но понадобилось создать абстрактные связи, у которых нет детализирующей таблицы - только запись в RELATION. Сам объект Relation я создать не могу - он абстрактный. Делать его неабстрактным тоже не хочется, т.к. уже структурированы абстрактные методы и иерархия и менять это нежелательно. Можно ли каким-то образом создать потомка от класса Relation, который будет реализовывать абстрактные методы, тоже будет являться сущностью но все параметры сущности будет наследовать от суперкласса и реализовываться проксей как будто-то бы это и есть суперкласс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 16:10 |
|
||
|
JPA наследование сущности с сохранением конфигурации
|
|||
|---|---|---|---|
|
#18+
publexusВсе было нормально пока у каждого типа связи была своя детализирующая таблица, но понадобилось создать абстрактные связи, у которых нет детализирующей таблицы - только запись в RELATION. Сам объект Relation я создать не могу - он абстрактный. Делать его неабстрактным тоже не хочется, т.к. уже структурированы абстрактные методы и иерархия и менять это нежелательно. Сами себе создаёте трудности, чтобы успешно с ними бороться? Если вам нужны абстрактные методы, от отделите сущность от них, чтобы использовать отдельно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 16:19 |
|
||
|
JPA наследование сущности с сохранением конфигурации
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Даже если отделить абстрактные методы от Relation и реализовать их в виде интерфейса это не решает проблемы. Все равно у Realtion есть некоторые общие для всех типов связи свойства и методы. И для новых связей без детализированной таблицы все равно придется наследовать их от Relation, чтобы не переписывать их в каждом классе. У разных связей будет разное поведение, даже несмотря на то, что в БД они находятся в одной и той же таблице. Я может быть неправильно выразился, основная проблема заключается в том чтобы создать наследника Relation со скопированной конфигурацией JPA. Может поиграться с Embeddable? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2014, 16:31 |
|
||
|
JPA наследование сущности с сохранением конфигурации
|
|||
|---|---|---|---|
|
#18+
publexusBlazkowicz, Даже если отделить абстрактные методы от Relation и реализовать их в виде интерфейса это не решает проблемы. Все равно у Realtion есть некоторые общие для всех типов связи свойства и методы. И для новых связей без детализированной таблицы все равно придется наследовать их от Relation, чтобы не переписывать их в каждом классе. У разных связей будет разное поведение, даже несмотря на то, что в БД они находятся в одной и той же таблице. Я может быть неправильно выразился, основная проблема заключается в том чтобы создать наследника Relation со скопированной конфигурацией JPA. Может поиграться с Embeddable? Лучше не надо. 1) Данные в БД это не объекты. Соответственно понятие "наследование" тут не применимо. Даже если поля таблиц совпадают, то все равно это разные таблицы, соответственно разные сущности в ORM. 2) Если нужны наследование и прочие "плюшки" ООП, то нужно отказаться от отображение этих классов на сущности БД. Т.е. просто создаете свою иерархию классов, а данные берете из БД (не важно как, можно даже нативным JDBC пользоваться) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2014, 11:22 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=185&tid=2127599]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 255ms |
| total: | 382ms |

| 0 / 0 |
