|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
подскажите как в JPA поверх spring boot 2 исторические таблицы следует оформлять. у основной таблицы есть ID, у исторической ID становится обычным not null полем, HIST_ID становится primary key. Код: 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. 29. 30. 31. 32.
Caused by: java.lang.ClassCastException: class org.hibernate.mapping.UnionSubclass cannot be cast to class org.hibernate.mapping.RootClass (org.hibernate.mapping.UnionSubclass and org.hibernate.mapping.RootClass are in unnamed module of loader 'app') тот же exception если из hist таблицы убрать id, как я понимаю тогда 2 primary ключа выходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 09:56 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
hck1, Не делают так историю. *наследование при рсубд не рекомендуется без обоснования Вам в ветку Разработка БД чтобы продумать правильные таблицы истории. Правильную Модель. А jpa работает только по правильной. Еще делят на OLAP/OLTP и денормализуют таблицы истории (держат отдельно) Имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 11:37 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
PetroNotC Sharp hck1, Не делают так историю. Абсолютное большинство именно так делают. Slowly changing dimension ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 15:44 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
По идее это можно решить, если аннотировать не поле, а геттер. Но это проверить надо, на 100% не гарантирую. Плюс в хибернейте есть встроенный аудит - envers - его еще можно чекнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2020, 15:53 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
hck1, Выкинуть Lombok, аннотации делать над гетером. Вместо lombok можно взять java 14 :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 06:37 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
что-то не получилось с анотацией над геттером. @Data заменил на @Setter, сгенерировал геттеры, над нужным геттером поставил @Id, но получил тот же exception. вопрос, а что я должен был c id сделать в ProductHistory ? я попробовал просто убрать, попробовал убрать поле и переопределить getId(), что бы избавится от наследуемой анотации @Id Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 08:43 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
В моей голове это было как-то так: Базовый класс: Код: java 1. 2. 3. 4. 5.
История: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Но опять же не уверен, будет ли точно так работать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 11:05 |
|
JPA и исторические таблицы, сменить @ID наследуемой Entity
|
|||
---|---|---|---|
#18+
hck1 PetroNotC Sharp hck1, Не делают так историю. Абсолютное большинство именно так делают. Slowly changing dimension Угу. У нас был тип 2 SCD и это быт такой геморрой с меняющимся ID, FK что врагу не пожелаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2020, 13:21 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2120783]: |
0ms |
get settings: |
7ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
34ms |
get topic data: |
2ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
142ms |
get tp. blocked users: |
0ms |
others: | 290ms |
total: | 488ms |
0 / 0 |