簡體   English   中英

休眠ORM中的幾個問題。

[英]Couple of questions in hibernate ORM.

<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文件將類與表進行映射。 這是一種老式的方式。
  1. 大概。
  2. 這意味着要使用數據庫的“本機” id方法,例如Oracle中的序列或MySql中的auto_increment等。
  3. 因為一個是ID,其他是屬性。
  4. 是。 是的,但是在某些情況下也更可取,例如,希望/需要將源與Hibernate分離,或將DB配置保留在一個位置(XML文件在一個目錄中,而不是在任何地方的源文件中)。
  1. 這是一個非常主觀的答案。 我將從自己的JPA指南開始。
  2. 本機意味着它將使用特定於數據庫的生成方法。 例如,對於mysql,它將使用自動遞增。 對於oracle,它可以使用序列。
  3. Hibernate要求每個實體都有一個ID。 使用id元素進行標記。
  4. 現在,大多數人改為使用注釋。 這樣做的好處是可以使用JPA批注,而不必與休眠綁定。 例如,在XML配置世界上仍然有一個地方,可以映射您沒有源訪問權限的bean。

您的問題的答案:

1)這是入門的最佳指南。 -這是休眠的正式且有史以來第一個文檔。 我更喜歡“行動中的休眠”

2)休眠中有幾個generators ,根據需求我們需要選擇合適的生成器,基本上它是用來生成主鍵的。 例如,如果您使用generator="assigned"即您需要在調用session.save(entity)之前手動分配一個主鍵。 在這里, native意味着休眠將根據您在配置中提供的數據庫方言來生成主鍵。 如果使用oracle,則使用序列;如果使用mysql或postgres,則使用auto_increment

3)id表示主鍵,其他是屬性,希望這是為了約定。

4)較舊的應用程序仍使用xmls。 最好在學習時從xml開始,然后將其轉換為注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM