![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Добрый день/вечер/ночь/утро - кому как повезет.
Чет затупил я и никак не могу сообразить - есть таблица, например
Соотв. каждый девайс может быть одного из трех типов - type1, type2, type3. Если он типа type1, то type2 и type3 - null. Хочется иметь 4 класса - Device, DeviceType1, DeviceType2 и DeviceType3. Понятно, что Device содержит поля id, field1, field2, а остальные - только соотв. им type. Как реализовать меппинг к этому делу? В документации, насколько я понял, сказано, что необходимо еще одно поле - определяющее тип объекта (в примере из документации - PAYMENT_TYPE). А как сделать без него - у меня однозначное определение - если поле type не null - значит объект соотв. type-класса. P.S. На Таблицу не ругайтесь - возможно я привел плохой пример, просто не хотелось все усложнять P.P.S. Это сообщение отредактировал(а) iluvatar - 18.3.2008, 17:23 |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
Здравствуй. Ты знаешь сколько не пробовал разных вариантов, а без Discriminator никак. У меня есть даже такое
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
Немного подумал - единственное решение, которое вижу:
3 меппинга на одну таблицу и в каждом меппинге <class=.... where="type1 is not null"> Все равно не очень красивое решение, т.к. в каждом меппинге придется переопределять общие столбцы этих классов. Это сообщение отредактировал(а) iluvatar - 19.3.2008, 10:45 |
|||
|
||||
fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: 4 Всего: 27 |
Пример на самом деле плохой, потому что так и просится рефакторинг "Replace inheritance with delegation". -------------------- ![]() |
|||
|
||||
diyko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2007 Репутация: нет Всего: нет |
меня интересует чет похожее
например есть таблица сompany с каким то набором полей я хочу сделать класс CompanyShortInfo, класс CompanyInfo и класс CompanyFullInfo CompanyFullInfo extends CompanyInfo extends CompanyShortInfo з мапингом на одну таблицу как наиболее коректно ето сделать? Это сообщение отредактировал(а) diyko - 19.3.2008, 12:31 |
|||
|
||||
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
CompanyFullInfo extends CompanyInfo extends CompanyShortInfo
эээ... это как понимать? Это сообщение отредактировал(а) iluvatar - 19.3.2008, 14:24 |
|||
|
||||
diyko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2007 Репутация: нет Всего: нет |
не понял |
|||
|
||||
iluvatar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 17.9.2007 Репутация: 4 Всего: 4 |
может все-таки
CompanyShortInfo extends CompanyInfo CompanyInfo extends CompanyFullInfo ? |
|||
|
||||
diyko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2007 Репутация: нет Всего: нет |
нет CompanyInfo extends CompanyShortInfo CompanyFullInfo extends CompanyInfo но ето на самом деле неважно важно как сдделать мапинг коректно Это сообщение отредактировал(а) diyko - 19.3.2008, 17:24 |
|||
|
||||
diyko |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.7.2007 Репутация: нет Всего: нет |
неужели никто не знает?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |