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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальные сcылка на объекты разных классов 
:(
    Опции темы
jvoid
Дата 19.9.2011, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть приложение в нем некоторые сущности хранимые в БД с помощью hibernate, нужно как то сделать, что б можно было получать объекты разных классов, что то вроде одного общего id, для объектов разных классов. 
PM MAIL   Вверх
Stolzen
Дата 19.9.2011, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

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



А конкретнее, чего хочется добиться? И пример


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
jvoid
Дата 19.9.2011, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я хочу сделать что то типа закладок на объекты разных классов например:

Код

@Entity
public class Project {
    
        @Id
        private Long id; // id проекта
..........................................    


Код

@Entity
public class NaturalPerson  {
   @Id
    private Long Id;
...........................................


Код

//закладка 329876

Object obj=getAppObject("329876") // получил объект класса Project в соответствии с закладкой

// закладка 687788
Object obj=getAppObject("687788") // получил объект класса NaturalPerson в соответствии с закладкой





Это сообщение отредактировал(а) jvoid - 19.9.2011, 20:38
PM MAIL   Вверх
k0rvin
Дата 19.9.2011, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



интересно, а как getAppObject должен догадаться объект какого класса он должен вернуть?


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
jvoid
Дата 19.9.2011, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(k0rvin @ 19.9.2011,  21:09)
интересно, а как getAppObject должен догадаться объект какого класса он должен вернуть?

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

Это сообщение отредактировал(а) jvoid - 19.9.2011, 21:26
PM MAIL   Вверх
Farmazon
Дата 20.9.2011, 06:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



общий родитель и наследование таблиц через сквозной ключ?...

Не очень хорошая идея... Храни явно в табличке закладок класс и идентификатор, этого достаточно для извлечения...


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
Nofate
Дата 20.9.2011, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А людям и проектам обязательно иметь сквозные идентификаторы?


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
Farmazon
Дата 20.9.2011, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



Я ж сказал, это не очень хорошая идея. Зато гарантируется "правильность" закладки.

Есть вариант ещё, сделай 2 типа(или больше) закладок: для проекта и для персоны. И если очень хочется - выдели супертип закладки и замути наследование сущностей через общую таблицу (только нули для внешних ключей разреши). Эээ.. понятно ли выразился?...




--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
LSD
Дата 20.9.2011, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



В чем проблема создать сущность закладка, у которой сделать пару полей, имя ентити и айди?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Farmazon
Дата 20.9.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



тоже самое, что и наследование сущностей закладок через общую таблицу)


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
LSD
Дата 20.9.2011, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(Farmazon @  20.9.2011,  15:52 Найти цитируемый пост)
тоже самое, что и наследование сущностей закладок через общую таблицу) 

Разница существенная. При наследовании, у тебя будет влияние на все сущности. В зависимости от стратегии наследования, у тебя будут или постоянные джойны, или опрос нескольких таблиц, или куча пустых полей.
В случае с отдельной сущностью, мы не трогаем структуру основных таблиц.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Farmazon
Дата 20.9.2011, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



Это я тоже уже предлагал постом выше... недостаток только в том, что целостность не бд обеспечивает и закладки надо подчищать ручками...
---
ну вот, 3 решения езь...


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
Farmazon
Дата 20.9.2011, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

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



топикстартёру вообще надо что-нибудь ещё?...


--------------------
Таково моё общее мнение.
PM MAIL WWW   Вверх
jvoid
Дата 26.9.2011, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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