|
|
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Скажем, есть несколько типов пользователей. Вот примитивная схема объектов (POJO для маппинга на DB без аннотаций): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Оперировать при наличии списка таких объектов несложно - всего лишь имплементировать один интерфейс, куда можно включить пересекающиеся поля. Однако мне нужно осуществить связку из другого объекта один-ко-многим, который бы ссылался на любого из UserA или UserB. Понятно, в лоб эту задачу не решить, я просто привел желаемый результат. Разделять поля на UserA и UserB нерационально, так как могут быть еще UserC, UserD и т.д. Логичным было бы иметь объект, содержащий общие поля, и ссылаться на него: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. И для полей User user можно было бы указать @OneToMany(targetEntity = User.class, fetch = FetchType.LAZY, mappedBy = "???"), но на что маппить? Точнее, логика подсказывает имплементировать UserA и UserB общий интерфейс IUser, а в User объявить новое поле: Код: java 1. 2. 3. 4. 5. И маппить на него. Вот только ничего не получается - сыпятся ошибки при запуске проекта. Тут я очень мелко плаваю и пробовал пару аннотаций (типа @JoinColumn). Поскажите, в каком направлении плыть? Может, есть другое решение задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 15:40:40 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
А почему через наследование не сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 15:54:28 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, - чем отличаются A и B? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:12:01 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Что от чего наследовать? А от В отличается набором полей и зависимостей. Приведенная схема примитивизирована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:17:47 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, 1 вар. Blazkowicz прав, только нужно проверить как качественно наследование делает хибер. Т.е. интерфейсы только после ООП-наследования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:22:38 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Я не спорю, что не прав. Я просто не знаю как это сделать (и что - "это"?) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:27:42 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckЧто от чего наследовать? А от В отличается набором полей и зависимостей. Приведенная схема примитивизирована. User c общими полями. public class User { private Long id; private String name; } в наследниках отличие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:27:47 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что как-то надо просто указать для поля IUser user, чтобы оно не создавалось в БД, а было "временным". И маппить на него. Будет ли в данном случае автомаппинг, если указывать у UserA и UserB Код: java 1. 2. 3. 4. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:30:21 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, без интерфейса можешь модель делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:40:20 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Конечно, могу. Но тогда должно ссылаться на один объект, а мне нужно на один из ... Для того и городил схему с интерфейсом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:48:12 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckКонечно, могу. Но тогда должно ссылаться на один объект, а мне нужно на один из ... Для того и городил схему с интерфейсом. вот и приведи БЕЗ интерфейсов на ООП Наследование в хибере: - иерархия в одну таблицу (вариант с дискриминатором) - подклассы в отдельных таблицах с общими полями в главной - все в отдельных таблицах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:53:07 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Ты думаешь, если бы я знал как это делается, я бы городил свою схему или задавал тут вопросы? Ни по одному из приведенных пунктов мне нечего написать - я просто ранее не сталкивался с таким и просто не знаю, как это делается. Затем и обратился за помощью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 16:59:17 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, вот. А я боюсь что ты всё занешь :) Ну давай от простого - все пол-ли в одну таблицу Код: java 1. 2. 3. 4. 5. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:05:16 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Так, допустим. Вводить еще одну таблицу с типами пользователей? Кроме идентефикатора что туда еще надо ложить? - Я пока не улавливаю смысл ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:29:10 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckТак, допустим. Вводить еще одну таблицу с типами пользователей? Кроме идентефикатора что туда еще надо ложить? - Я пока не улавливаю смысл ... конечно. Стандартный справочник ТипыПользователей (id, name) Тебе ведь имяТипа нужно? Связь МногиеКодному ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:33:18 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Похоже, что мы друг друга не понимаем. Ты, видимо, не понял чего я хочу добиться, а я - что должен получить ты в результате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:43:03 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckПохоже, что мы друг друга не понимаем. Ты, видимо, не понял чего я хочу добиться, а я - что должен получить ты в результате. Делай через наследование и в мануале ищи примеры по ключевому слову Inheritance ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 17:47:04 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Дак ты молчишь и не пишешь зачем тебе разный тип класса.:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 18:48:51 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruckа я - что должен получить ты в результате. я сделал следующее: Цель: "проще оперировать списком без интерфейса" (твои слова) Код: java 1. преобразовываем в класс одного типа, но с маркером A, B, ...N Код: java 1. 2. 3. 4. 5. 6. Цель достигнута. Так что, или не молчи.... или иди в гугль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 20:08:10 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#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. Для теста забиваю в User: id = 1 (auto), name = "name1" id = 2 (auto), name = "name2" в UserA: id = 1, email = "email1", someFieldA = "val1" в UserB: id = 2, someFieldB = "val2" Вытягиваю данные: Код: java 1. Получаю user1 - тип UserA со значениями id = 1, name = "name1", email = "email1", someFieldA = "val1", и user2 - тип UserB со значениями id = 2, name = "name2", someFieldB = "val2". Как раз самое то ... Правда, еще не разбирался как эти значения туда программно помещать :) - как UserA и UserB, или раздельно с User, но не думаю, что это станет проблемой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 20:49:53 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, ну вот, InheritanceType.JOINED - самый распростарнённый в наследовании хибера. Единственно, что, при этом варианте - UserA и UserB и т.д. ты увеличиваешь только в дезигн (разработка). В варианте без наследования модель не меняется (ран-тайм) Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 21:27:34 |
|
||
|
Как реализовать подобную структуру?
|
|||
|---|---|---|---|
|
#18+
Угу. А я, что, спорю, чт ли? Блазкович назвал только одно слово - дал ниточку, а я по ней уже раскрутил все. Мне примерно такое и надо было - маленький пинок, чтобы сдвинуться. Дока по Хиберу огромная, знание английского не совершенно свободное, где и что искать - не знаю, а засесть дня на 2 - сорри, не могу. Так что тебе тоже спасибо за содействие, но что ты хотел сказить - я так и не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2012, 22:24:33 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37709248&tid=2132306]: |
0ms |
get settings: |
17ms |
get forum list: |
19ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
49ms |
get topic data: |
21ms |
get forum data: |
4ms |
get page messages: |
111ms |
get tp. blocked users: |
4ms |
| others: | 362ms |
| total: | 599ms |

| 0 / 0 |
