几个问题在hibernate ORM。

时间:2012-06-26 15:00:56

标签: java hibernate

<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 我正在阅读关于hibernate的这篇文章。

  1. 这是初学者的最佳指南。
  2. generator class ="native"是什么意思,它有什么作用?
  3. 为什么id用id标签声明,而另一个声明用 财产标签。
  4. 人们仍然使用xml文件来映射表的类。这是一种老式的方式。

3 个答案:

答案 0 :(得分:2)

  1. 可能。
  2. 这意味着使用数据库的“本机”id方法,如Oracle中的序列或MySql中的auto_increment等。
  3. 因为一个是身份证,其他人就是财产。
  4. 是。是的,但在某些情况下也是首选,例如,想要/需要将源与Hibernate分离或将DB配置保存在一个位置(XML文件在单个目录中而不是在源文件中,无论它们在何处)。

答案 1 :(得分:2)

  1. 这是一个非常主观的答案。我自己会从JPA指南开始。
  2. Native表示它将使用特定于数据库的生成方法。例如,对于mysql,它将使用自动增量。对于oracle,它可以使用序列。
  3. Hibernate要求每个实体都有一个id。使用id元素标记它。
  4. 现在大多数人都使用注释。那里的优点是你可以使用JPA注释而不是依赖于hibernate。例如,世界上还有一个地方用于XML配置,以映射您没有源访问权限的bean。

答案 2 :(得分:1)

您的问题的答案:

1)这是首发的最佳指南。     - 这是hibernate的官方文件和第一份文档。我更喜欢“Hibernate in Action”

2)hibernate中有几个generators,取决于我们需要选择合适的一个,基本上它用于生成主键。例如,如果您使用generator="assigned",则需要在致电session.save(entity)之前手动分配主键。这里native表示hibernate将根据您在配置中提供的数据库方言来生成主键。如果你使用oracle和auto_increment,如果你使用mysql或postgres

,它会使用序列

3)id表示主键,其他是属性,希望这是一个约定。

4)较旧的应用程序仍然使用xmls。最好先学习xmls,然后将它们转换为注释。