Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JPA "извраты"


Автор: goodday1941 30.4.2009, 14:52
и так допустим у меня есть сущность Animal и также наследуемые эту сущность сущности Cat, Dog, Beaver, и т.д. с какими-то специфическими свойствами...
например:
Код

class Animal{
private Integer id;
//ЖПАшные аннотации геттеры сеттеры
}

class Beaver extends Animal{
private Float length;
//ЖПАшные аннотации геттеры сеттеры
}


то-есть в результате получим две таблицы со связью one-to-one завязанных по id

далее к примеру я хочу выбрать запросом всех Animal, но если имеющееся Animal есть Beaver то что бы в результат выборки положился именно Beaver, и далее я смог сделать что то по типу:
Код

for(Animal animal:list){
   if(animal instanceof Beaver){
      System.out.println(((Beaver)animal).getLength());
   }
}


кто что может сказать по этому поводу?

Добавлено через 11 минут и 28 секунд
http://www.devx.com/Java/Article/33906/0/page/1

Добавлено через 14 минут и 30 секунд
и там есть такие строки:
Код

SELECT c FROM Customer c    --Returns all the customers (individuals and companies)

что в переводе на моих животных означает что запрос по типу
Код

SELECT a FROM Animal a

вернет то что меня интересует

Автор: MisterCleric 30.4.2009, 17:12
Дык, даже в этой же статье рассказывается об JPA inheritance & DiscriminatorColumn.
Говориться о том, что есть основной класс (абстракный), на котором и определяется поведение иерархии.
Надо внимательней почитать о меппинге иерархии...

http://www.google.com.ua/search?q=Inheritance+with+JPA

а потом выбрать для себя стратегию и уже правильно переписать свой код

Автор: goodday1941 5.5.2009, 09:41
почитаем разберемся... но то что я в конце написал работает как надо... умён жпа однако )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)