|
|
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пожалуйста помогите разобраться в однонаправленной связи. Вот здесь очень хороший пример Bidirectional один-ко-многим(если я не ошибаюсь, то тогда я хорошо понял о чем там речь). Что мне нужно: Возьмем старую добрую связь из двух таблиц "Заказ"-"Строки заказа": Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Мне нужно сделать как в этом примере(указывал его выше), но не ссылаясь на Order. Т.е. если у меня есть Заказ то я могу получить список его строк getListStrOrder(). Что то типо: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Читал и тут и вот тут и много еще где, но я совершенно НЕ понимаю как писать... Если вам не сложно подскажите как это реализовать. Или литературу понятную. Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 20:00 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Если говорить о данном примере , то мне в StockDailyRecord совершенно НЕ нужен объект Stock: Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 20:05 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Вот так? Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2015, 20:33 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
z3r9, Насколько я понимаю если я напишу вот так Код: java 1. То мне придется создать объект Order в классе StrOrder, а я как раз таки пытаюсь уйти от этого. В любом случае вот ошибка: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 04:56 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
doofyсовершенно НЕ нужен объект Stock: что значит не нужен? Ты спроси БД, нужен ли он там. Да, можно понаписать в СУБД всяких там таблица в таблице или массив в колонке, но уж лучше по классике. 1 ко многим = 2 таблицы. Тем более что у тебя всё равно будут в Заказе какие-то шапочные данные-поля (номер\дата\....) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 05:38 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Petro123, Petro123Да, можно понаписать в СУБД всяких там таблица в таблице или массив в колонке, но уж лучше по классике. 1 ко многим = 2 таблицы. О чем это вы? У меня классический пример для реляционной БД "заказ"-"строки заказа" отношение 1-* соответственно. Я же это уже написал. Я говорю о том, что в Order список строк заказа оправдан (речь идет классах JAVA), а вот в каждой строке иметь заказ это лишнее.(это есть двунаправленная связь) Мне же нужна однонаправленная. Например у меня есть какой-нибудь метод, который вернет мне Заказ я хочу иметь возможность получить все его строки getList(). Зачем мне при этом в каждой из этих строк иметь опять таки этот заказ??? Простите но ваша мысль мне не ясна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 06:08 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
doofy, ну, может я вас не понял? - сам маппинг и 2-е таблицы в БД есть. Т.е. Модель работает. Так? - вопрос только в методе получения инфы из БД. Т.е. оптимизировать запрос. Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 06:13 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Petro123, В БД есть две таблицы это верно. Проблема в мапинге. Загвоздка у меня в том, как аннотациями показать hibernate связь между таблицами, при этом связь должна быть unidirectional. (Order должен уметь получать список StrOrder, а StrOrder не должен ничего знать об Order) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 07:14 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
doofy, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Пример с Unidirectional OneToMany ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 11:12 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
doofyPetro123, В БД есть две таблицы это верно. Проблема в мапинге. Загвоздка у меня в том, как аннотациями показать hibernate связь между таблицами, при этом связь должна быть unidirectional. (Order должен уметь получать список StrOrder, а StrOrder не должен ничего знать об Order) Так не делай в классе StrOrder поле Order и все. И будет unidirectional. Никакие mappedBy не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 13:00 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
rdm, Оооо, я бы с радостью так бы и поступил! Если бы не: Код: java 1. Если уберу мапинг в StrOrder: Код: java 1. 2. 3. 4. ошибка будет исправлена, но тогда класс не будет ничего знать о внешнем ключе "id_fk_order"... Подозреваю что просто так убрать оттуда Order не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 16:26 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
Может я не понимаю каких-то концептуальных вещей в hibernate. Цель была получить работающий код за разумные сроки... Возможно данное решение в корни неверное, но вдруг кому-то пригодится... Вот так я решил свою задачу: Код: 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. 33. 34. 35. 36. Код: 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. 33. 34. 35. 36. 37. 38. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 20:15 |
|
||
|
Hibernate Unidirectional
|
|||
|---|---|---|---|
|
#18+
doofy, http://download.oracle.com/otndocs/jcp/persistence-2_1-fr-eval-spec/index.html 2.10.5.1 Unidirectional OneToMany Relationships The following mapping defaults apply: Entity A is mapped to a table named A. Entity B is mapped to a table named B. There is a join table that is named A_B (owner name first). This join table has two foreign key columns. One foreign key column refers to table A and has the same type as the primary key of table A. The name of this foreign key column is formed as the concatenation of the following: the name of entity A; "_"; the name of the primary key column in table A. The other foreign key column refers to table B and has the same type as the primary key of table B and there is a unique key constraint on it. The name of this foreign key column is formed as the concatenation of the following: the name of the relationship property or field of entity A; "_"; the name of the primary key column in table B. Example: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. In this example: Entity Employee references a collection of Entity AnnualReview. Entity AnnualReview does not reference Entity Employee. Entity Employee is the owner of the relationship. The following mapping defaults apply: Entity Employee is mapped to a table named EMPLOYEE. Entity AnnualReview is mapped to a table named ANNUALREVIEW. There is a join table that is named EMPLOYEE_ANNUALREVIEW (owner name first). This join table has two foreign key columns. One foreign key column refers to table EMPLOYEE and has the same type as the primary key of EMPLOYEE. This foreign key column is named EMPLOYEE_<PK of EMPLOYEE>, where <PK of EMPLOYEE> denotes the name of the primary key column of table EMPLOYEE. The other foreign key column refers to table ANNUALREVIEW and has the same type as the primary key of ANNUALREVIEW. This foreign key column is named ANNUALREVIEWS_<PK of ANNUALREVIEW>, where <PK of ANNUALREVIEW> denotes the name of the primary key column of table ANNUALREVIEW. There is a unique key constraint on the foreign key that refers to table ANNUALREVIEW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2015, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39051204&tid=2124938]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
20ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 333ms |

| 0 / 0 |
