|
|
|
hibernate many-to-many без связующей таблицы
|
|||
|---|---|---|---|
|
#18+
Коллеги, Хочется странной вещи, а именно хочется связать две таблицы, без связующей таблицы, но по связующему полю Таблицы (выдуманы для упрощения) выглядят так: Код: css 1. 2. 3. 4. 5. Код: css 1. 2. 3. 4. 5. Я реализовал данную связь через one-to-many, и даже все на первый взгляд заработало. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Но случилась такая фигня, как то, что поле name в объекте User не уникально. И при некоторой выборке давало такую вот штуку: Код: css 1. 2. 3. 4. Т.е. поле ACCESS_GROUP оказалось не уникальным и это кагбэ ломает мозг Hibirnate'у где он думает, что связь является one-to-many а она на самом деле является many-to-many. И он не может правильно сформировать List<Access> accessList. У первого объекта с ID=10 accessList будет, а у второго будет эксепшен, в зависимости от того какой FetchType используется. Если EAGER, то будет эксепшен "collection is not associated with any session" если LAZY чутка другой эксепшен но сути это не меняет :) Не могли бы Вы уважаемые коллеги подсказать как правильнее всего маппить такие таблички? PS. Создание связующей таблицы в моём случаи не выход, так как это требует дополнительных селектов и следовательно проседание по производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 02:00:07 |
|
||
|
hibernate many-to-many без связующей таблицы
|
|||
|---|---|---|---|
|
#18+
DISTINCT_ROOT_ENTITY не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 10:18:54 |
|
||
|
hibernate many-to-many без связующей таблицы
|
|||
|---|---|---|---|
|
#18+
BlazkowiczDISTINCT_ROOT_ENTITY не пробовали? Пробовал, та же ситуация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 19:29:50 |
|
||
|
hibernate many-to-many без связующей таблицы
|
|||
|---|---|---|---|
|
#18+
tepka, Хибер подчиняется законам Рсубд. Зачем хотеть странного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 19:13:09 |
|
||
|
hibernate many-to-many без связующей таблицы
|
|||
|---|---|---|---|
|
#18+
Если нарушить 1НФ и разрешить в ячейке храниить список элементов то можно сделать связь более сложной. Но это уже будет не классическая RDBMS а какая-то другая DBMS со своими вытекающими ограничениями. Oracle с какой-то версии позволяет делать вложенные таблицы (nested tables) и списковые значения в поле (multivalued attributes). Но как к этому отнесётся хибернейт и вообще сама реализация ORM-а я не знаю. Вобщем в попытках найти странного и экзотического вы найдете много часов потерянного времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2012, 19:19:34 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38001158&tid=2130757]: |
0ms |
get settings: |
13ms |
get forum list: |
24ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
42ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 305ms |
| total: | 489ms |

| 0 / 0 |
