![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
afon |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Как исключить поле из маппинга в классе наследнике?
Ситуация: Класс Card, в котором есть ссылка на класс TaxPolicy (двустороння связь). От Card наследуется некий CardRecord, который просто содержит те же поля, что и Card и добавляет одно свое поле. Нужно, чтобы класс CardRecord не подтягивал ссылку на taxPolicy из своего родителя. Можно ли так сделать? Код
|
||||||
|
|||||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Попробуйте объявить метод getTaxPolicy() и пометить его как @Transient. Или поле, если вы расставляли аннотации у полей.
|
|||
|
||||
afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Пробовал, не получается.
Самый простой пусть - описать свои идентичные поля у наследника Карты CardRecord-а и не парится ![]() Просто хочется сделать в духе хибернейта. |
|||
|
||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Да, пожалуй то что вы написали - единственный возможный вариант, если транзиент не катит :(
|
|||
|
||||
garbuz |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 677 Регистрация: 22.1.2008 Репутация: 8 Всего: 11 |
А LAZY не покатит?
|
|||
|
||||
afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Пардон. Не понял. При чем тут lazy? Это же просто стратегия вытягивание объектов по ссылке 1-*
При таком коде, как я показал, хибернейт валится еще на старте при валидации/создании таблиц. Лейзи тут не поможет. Мне нужно что-то вроде @AttributeOverride, только в AttributeOverride можно лишь переименовать поля и их маппинг на колонки. А вот так чтобы исключить колонку из маппинга в принципе, - нельзя. Думал, может кто из уважаемого сообщества знает нужную аннотацию. Прихожу к выводу, что (как минимум в hibernate) так сделать нельзя. |
|||
|
||||
Restavrator |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 16.6.2007 Репутация: 1 Всего: 1 |
А что мешает сделать некий BaseCard в котором будут все поля кроме taxPolicy. Card и CardRecord унаследовать от BaseCard с добавлением соответствующих полей. |
|||
|
||||
afon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 5.4.2008 Где: Украина, Киев Репутация: нет Всего: 1 |
Ничего не мешает. Просто не подумал.
Спасибо, отличное простое решение :) Это сообщение отредактировал(а) afon - 4.3.2010, 17:57 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |