Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маппинг несколько класов на одну таблицу, Маппинг несколько класов на одну таблицу 
:(
    Опции темы
diyko
Дата 25.3.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет




например есть таблица сompany
с каким то набором полей
я хочу сделать класс CompanyShortInfo, класс CompanyInfo и класс CompanyFullInfo
(CompanyInfo    extends CompanyShortInfo  
CompanyFullInfo extends CompanyInfo )
з мапингом на одну таблицу
Мне ето нужно потому что есть варианти когда не надо извлекать все поля компании а только два или три
как наиболее коректно ето сделать?
Или лучше с помощю лейзилоадинга?
PM MAIL   Вверх
Llucas
Дата 25.3.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Проще все в запросе явно указывать какие поля тебе нужно в каждой конкретной ситуации.

Вообще ты можешь сделать основной класс.. К примеру у него будет ряд переменных и еще две переменные - классы которые ты хотел создать. Эти классы не должны быть extends а просто implements Cloneable, Serializable . В эти классы клади какие-ты хочешь переменные.


PM MAIL WWW   Вверх
diyko
Дата 25.3.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Можно, но не очень красиво  smile
А что будет если просто сделать мапинг без каких либо дискриминаторов? С xml  ето когдато работало
 
PM MAIL   Вверх
Llucas
Дата 25.3.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Здесь такое дело... если у тебя есть таблица и ты хочешь брать из нее ряд столбцов... разбей эту таблицу на 2 таблицы, свяжи их, сделай маппинг  и работай с разными объектами... 

Что такое дискриминатор?
PM MAIL WWW   Вверх
necromancer
Дата 25.3.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



to Llucas господи, какие сложности =))))
есть ведь такая штука в базах, как синонимы, вьюшки и т.п. лабудень =)

Добавлено @ 17:25
плюс ко всему посредством аннотаций у меня вполне нормально получилось замапить 2 класса на одну таблицу. Трудности начнутся при написании HSQL

Это сообщение отредактировал(а) necromancer - 25.3.2008, 17:26


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
Llucas
Дата 25.3.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Цитата

есть ведь такая штука в базах, как синонимы, вьюшки и т.п. лабудень =)


necromancer, вообще не понял к чему  ты это сказал...

Цитата

плюс мо всему посредством аннотаций у меня вполне нормально получилось замапить 2 класса на одну таблицу. Трудности начнутся при написании HSQL


Если хочешь использовать хибернейт, чтобы избежать трудностей с hql не надо так делать...
PM MAIL WWW   Вверх
necromancer
Дата 25.3.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



вопорс был? 
ответ был? 
а вот это вот
Цитата

 разбей эту таблицу на 2 таблицы

бред ИМХО
такие решения не стоит предлагать, с учетом того что ВОПРОС стоял не как сделать 2 класса на 2!!! таблицы, а как 2 классана ОДНУ таблицу!

Добавлено через 51 секунду
насчет HSQL я о нем не шибко хорошего мнения. но это все субъективно


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
Llucas
Дата 25.3.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


J2EE Developer
*


Профиль
Группа: Участник
Сообщений: 160
Регистрация: 29.11.2006
Где: Одесса

Репутация: нет
Всего: нет



Вопрос стоит так что сам по себе уже предусматривает сложности в работе... 
Я говорю о том, что надо пересмотреть структуру БД или при выполнении запроса явно указывать поля  -  вот и все... Бреда тут нету.

PM MAIL WWW   Вверх
necromancer
Дата 25.3.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



теперь я отвечу за свои слова =)
если в базе создать синоним то к таблице можно обращатся по 2-м разным именам. но это будет та же самая таблица.
С вью впринципе тоже самое и даже update может проходить если не используется аггрегация и другие сложности.
Цитата

Вопрос стоит так что сам по себе уже предусматривает сложности в работе... 

Не всегда.
Например есть строчка в бад имя и фото. при работе с одним классом Хибер будет тянуть и фото. что явно накладно. разбиваем работу с хибером на два класса по одному ключу - повышаем производителньость системы в разы. А структура базы полностью отражает сущность объекта. Или предлагаешь хранить имена и фото в разных таблицах + ключ + связывание + контроль целостности

Это сообщение отредактировал(а) necromancer - 25.3.2008, 18:09


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
diyko
Дата 25.3.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Цитата(necromancer @ 25.3.2008,  18:08)

Например есть строчка в бад имя и фото. при работе с одним классом Хибер будет тянуть и фото. что явно накладно. разбиваем работу с хибером на два класса по одному ключу - повышаем производителньость системы в разы. А структура базы полностью отражает сущность объекта. Или предлагаешь хранить имена и фото в разных таблицах + ключ + связывание + контроль целостности

Да ето именно такой случай наверное
каждий раз тянуть фото накладно
проще два класа  к одной таблице
какие проблеми могут бить с HQL
Кто то знает точно?

Разбивать на две таблици не хочеться также потому что логически ето все таки один обект
PM MAIL   Вверх
necromancer
Дата 25.3.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



кстати вот не знаю можно ли сделать lazyLoad на поле и наверное в принципе можно создать фильтры.


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
iluvatar
Дата 26.3.2008, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: 4
Всего: 4



насколько я понял, вопрос здесь стоит как реализовать наследование нескольких классов, отображающих одну таблицу.
PM MAIL ICQ   Вверх
diyko
Дата 26.3.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



В общем да
і как верно их мапить
PM MAIL   Вверх
necromancer
Дата 26.3.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 317
Регистрация: 26.7.2006
Где: Москва

Репутация: 6
Всего: 7



про наследование читаем документацию по Hibernat


--------------------
С уважением, 
                 Виталий Смык
----------------------------------------------------------------------------------------------
SCJP, SCWCD, OCA
http://dev.maryno.net/video/
PM MAIL WWW ICQ Skype   Вверх
diyko
Дата 26.3.2008, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



читал
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.