2012-06-26 2 views
1
<hibernate mapping package="org.hibernate.tutorial.domain"> 

    <class name="Event" table"Events"> 
     <id name="id" column="EVENT_ID"> 
      <generator class ="native"/> 
     </id> 

     <property name="date" type="timestamp" column="EVENT_DATE"/> 
     <property name="title"/> 

     </class> 

</hibernate-mapping> 

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html#tutorial-firstapp Я проходил эту статью в спящем режиме.Пара вопросов в спящем ORM.

  1. Это лучшее руководство для начинающих.
  2. Что означает generator class ="native" означает и что он делает?
  3. Почему идентификатор id с тегом id, а другой объявлен с тегом свойств .
  4. люди все еще используют файл xml для отображения класса со своей таблицей. Это старомодный способ.

ответ

2
  1. Возможно.
  2. Это означает использование методологии «native» id базы данных, как последовательность в Oracle или auto_increment в MySql и т. Д.
  3. Потому что ваш идентификатор и другие объекты.
  4. Да. Да, но это также предпочтительнее в некоторых ситуациях, например, желая/нужно отделить источник от Hibernate или сохранить конфигурацию БД в одном месте (файлы XML в одном каталоге, а не в исходных файлах, где бы они ни находились).
2
  1. Это очень субъективный ответ. Я бы начал с руководства JPA.
  2. Родной означает, что он будет использовать метод генерации, специфичный для базы данных. Например, для mysql он будет использовать auto-increment. Для оракула он может использовать последовательности.
  3. Спящий режим требует, чтобы каждый объект имел идентификатор. Используйте элемент id, чтобы пометить его.
  4. Большинство людей теперь используют аннотации. Там есть преимущество, что вы можете использовать аннотации JPA и не привязываться к спящему. Тем не менее, есть место в мире для конфигурации XML, например, для сопоставления компонентов, к которым у вас нет доступа к источнику.
+0

Эй, это первое реальное преимущество аннотаций Hibernate, о котором я слышал.Я предпочитаю файлы сопоставления xml, потому что там вы можете иметь разные сопоставления для разных баз данных, не меняя ни одной строки кода Java, они дают хороший обзор о сопоставлении, и они помогают в правильном способе проектирования баз данных (сначала база данных, Java pojos позже). Но в основном это вопрос личного вкуса. – Johanna

+0

Хе-хе. Я очень верю в Пойос, позже, позже. Это скорее религия, чем вкус. –

1

Ответы на вопросы:

1) Является ли это лучший путеводитель для начинающих. - Официальная и первая документация для спящего режима. Я предпочитаю «Hibernate in Action»

2) Существует несколько generators в спящем режиме, в зависимости от требований, которые нам нужны, чтобы выбрать правильный, в основном он используется для генерации первичного ключа. Например, если вы используете generator="assigned", то вам нужно вручную назначить первичный ключ, прежде чем вы вызовете session.save(entity). Здесь native означает, что hibernate позаботится о создании первичного ключа на основе диалекта базы данных, который вы предоставили в конфигурации. Он использует последовательность, если вы используете oracle и auto_increment, если используете mysql или postgres.

3) id обозначает первичный ключ, другие - свойства, Надеюсь, что это соглашение.

4) Старые приложения по-прежнему используют xmls. Лучше начать с xmls во время обучения, а затем преобразовать их в аннотации.

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