hibernate一對一例子-已更新(一)
先看由滿江紅翻譯團隊(RedSaga Translate Team)翻譯的一對一配置說明
一對一
持久化對象之間一對一的關聯關系是通過one-to-one元素定義的。
<one-to-one name="propertyName" (1) class="ClassName" (2) cascade="cascade_style" (3) constrained="true|false" (4) fetch="join|select" (5) property-ref="propertyNameFromAssociatedClass" (6) access="field|property|ClassName" (7) formula="any SQL expression" (8) lazy="true|proxy|false" (9) entity-name="EntityName" (10) node="element-name|@attribute-name|element/@attribute|." embed-xml="true|false" />
(1) |
name: 屬性的名字。 |
(2) |
class (可選 - 默認是通過反射得到的屬性類型):被關聯的類的名字。 |
(3) |
cascade(級聯) (可選) 表明操作是否從父對象級聯到被關聯的對象。 |
(4) |
constrained(約束) (可選) 表明該類對應的表對應的數據庫表,和被關聯的對象所對應的數據庫表之間,通過一個外鍵引用對主鍵進行約束。 這個選項影響save()和delete()在級聯執行時的先后順序以及 決定該關聯能否被委托(也在schema export tool中被使用). |
(5) |
fetch (可選 - 默認設置為選擇): 在外連接抓取或者序列選擇抓取選擇其一. |
(6) |
property-ref: (可選) 指定關聯類的屬性名,這個屬性將會和本類的主鍵相對應。如果沒有指定,會使用對方關聯類的主鍵。 |
(7) |
access (可選 - 默認是 property): Hibernate用來訪問屬性的策略。 |
(8) |
formula (可選):絕大多數一對一的關聯都指向其實體的主鍵。在一些少見的情況中, 你可能會指向其他的一個或多個字段,或者是一個表達式,這些情況下,你可以用一個SQL公式來表示。 (可以在org.hibernate.test.onetooneformula找到例子) |
(9) |
lazy (可選 - 默認為 proxy): 默認情況下,單點關聯是經過代理的。lazy="true"指定此屬性應該在實例變量第一次被訪問時應該延遲抓?。╢etche lazily)(需要運行時字節碼的增強)。 lazy="false"指定此關聯總是被預先抓取。注意,如果constrained="false", 不可能使用代理,Hibernate會采取預先抓取! |
(10) |
entity-name (可選): 被關聯的類的實體名。 |
http://www.huihoo.com/framework/hibernate/reference-v3_zh-cn/mapping.html
好。。再來測試。。。
1.建表











?? Address vo






















3.寫配置文件
Student.hbm.xml
























































接著把下面的hibernate.properties文件拷到classes目錄下。。這里用的是mysql
























































































































































posted on 2006-04-06 16:05 record java and net 閱讀(6057) 評論(3) 編輯 收藏 所屬分類: java