2010-11-25 2 views
3

Я сгенерировал файлы сопоставления и POJO в Netbeans вместо того, чтобы писать их самостоятельно. Можно ли использовать производный класс в месте унаследованного класса? Примером может быть что-то вроде этого:Hibernate - производные классы java для таблиц

Person.hbm.xml - mapping file 

Person.java - generated class (strategy class per table) 

PersonExtended - class that extends Person.java 

Так что, когда я создаю новый объект:

PersonExtended personextended = new PersonExtended(<parameters>); 

я был бы в состоянии назвать такие методы, как:

session.save(personextended) or session.delete(personextended)

?

Является ли этот сценарий разумным или я должен добавить код, который мне нужен, в сгенерированный класс? Заранее благодарим за помощь или предложения.

------- Редактировать --------

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

С наилучшими пожеланиями, sass.

ответ

2

вам нужно будет сообщить hibernate, как ваши расширенные классы должны отображаться через файл hbm.xml. В зависимости от стратегии, которую Hibernate должен использовать для полиморфизма, вам может потребоваться присвоить значение дискриминатора. существует три различные стратегии при использовании подклассов, называемых таблицей «таблица для каждого класса» для конкретного класса »и« таблица для каждого подкласса ».

Вы можете определить подклассы в файле HBM-XML с помощью <subclass> или <joined-subclass> элементов

, если вы правильно определили свой файл hbm.xml, то вы можете использовать session.save(new PersonExtended()) или СТГ.

вы можете прочитать об этом здесь: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html

надежду, что помогло ..

+0

Привет, спасибо большое за ответ. Но я не уверен в правильном использовании этого. Если бы я должен был автоматически генерировать классы спящего режима из базы данных при наличии этих сопоставлений в файле сопоставления, будут ли также созданы подклассы? Или только базовые классы? – sass 2010-11-26 09:18:50

Смежные вопросы