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

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

3 回答 3

2
  1. 这是一个非常主观的答案。我会自己从 JPA 指南开始。
  2. 本机意味着它将使用特定于数据库的生成方法。例如,对于 mysql,它将使用自动增量。对于 oracle,它可以使用序列。
  3. Hibernate 要求每个实体都有一个 id。使用 id 元素来标记它。
  4. 现在大多数人都使用注释。有一个优点是您可以使用 JPA 注释而不是绑定到休眠。XML 配置在世界上仍有一席之地,例如,映射您没有源访问权限的 bean。
于 2012-06-26T15:10:44.800 回答
2
  1. 大概。
  2. 这意味着使用数据库的“本机” id 方法,如 Oracle 中的序列或auto_incrementMySql 中的序列等。
  3. 因为一个是ID,其他是属性。
  4. 是的。是的,但在某些情况下它也更可取,例如,想要/需要将源与 Hibernate 分离或将 DB 配置保存在一个地方(XML 文件在单个目录中,而不是在任何可能的源文件中)。
于 2012-06-26T15:06:25.370 回答
1

回答您的问题:

1)这是初学者的最佳指南吗?- 这是官方的第一个hibernate文档。我更喜欢“Hibernate in Action”

2)hibernate有好几种generators,根据需要选择合适的,基本上是用来生成主键的。例如,如果你使用generator="assigned"ie,你需要在调用之前手动分配一个主键session.save(entity)。这native意味着休眠将根据您在配置中提供的数据库方言负责生成主键。如果你使用 oracle,它使用序列,如果你使用 mysql 或 postgres,它使用 auto_increment

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

4) 较旧的应用程序仍然使用 xmls。最好在学习的时候从 xmls 开始,然后将它们转换为注解。

于 2012-06-26T15:13:07.370 回答