欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
一對一主鍵關(guān)聯(lián)映射(單向)
 一對一主鍵關(guān)聯(lián)映射是hibernate關(guān)聯(lián)映射中比較重要的一種,使用于兩個(gè)關(guān)系比較緊密的對象之間的關(guān)聯(lián),一對一不說(shuō),一般還要共存亡。hibernate的做法是讓兩個(gè)實(shí)體對象的id保持相同。
     人和身份證是典型的一對一關(guān)聯(lián)映射的例子。
    
1.實(shí)體模型:
此處單向是由person加載idcard,所以Person中要保存IdCard的對象。
 
2.關(guān)系模型:
 表person                                        表idCard
  -----------------------                  --------------------------
  | id  |          name   |                    | id  |         cardNo     |
 ------------------------                 --------------------------
 
3.實(shí)體類(lèi):
  IdCard.java
public class IdCard {
  private Integer id;
  private String cardNo;
                //一系列的setter.getter方法
}
  Person.java
public class Person {
  private Integer id;
  private String name;
  private IdCard idCard;
                //一系列的setter.getter方法
}
 
4.映射文件:
  IdCard.hbm.xml
  <class name="com.sxt.hibernate.one2one.entity.IdCard" table="sxt_hibernate_idCard">
    <id name="id" length="4">
      <generator class="native"></generator>
    </id>
    <property name="cardNo" length="10"></property>
  </class>
   Person.hbm.xml
  <class name="com.sxt.hibernate.one2one.entity.Person" table="sxt_hibernate_person">
    <id name="id" length="4">
      <!-- person的主鍵來(lái)源于idCard,也就是共享idCard的主鍵 -->
      <generator class="foreign">
        <param name="property">idCard</param>
      </generator>
    </id>
    <property name="name" length="10"></property>
    <!--one-to-one標簽的含義,指示Hibernate如何加載它的關(guān)聯(lián)對象,默認根據主鍵加載。
      constrained="true"的含義,表明當前主鍵上存在一個(gè)約束,person的主鍵作為外鍵參照了idCard,
      這里在進(jìn)行person對象操作時(shí),要求idCard不 能為null
        
-->
    <one-to-one name="idCard" constrained="true"></one-to-one>
  </class>
 
5.hibernate配置文件:
  hibernate.cfg.xml
  <session-factory>
    <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ORCL10</property>
    <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.username">scott</property>
    <property name="hibernate.connection.password">yf123</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
    <property name="hibernate.show_sql">true</property>
    
    <mapping resource="com/sxt/hibernate/one2one/entity/IdCard.hbm.xml"/>
    <mapping resource="com/sxt/hibernate/one2one/entity/Person.hbm.xml"/>
  </session-factory>
6.測試方法:
  test.java
  public static void main(String[] args) {
    Session session = HibernateUtils.getSession();
    Transaction t = session.beginTransaction();

    try {
      /**
        * 測試插入操作
        */

/*      IdCard idCard = new IdCard();
      idCard.setCardNo("1234567890");

      Person person = new Person();
      person.setName("張三");
      person.setIdCard(idCard);
      //不會(huì )出現TransientObjectException異常,因為一對一主鍵關(guān)聯(lián)映射中默認了cascad屬性
      session.save(person);*/

      /**
        * 測試加載操作
        */

      Person p=(Person)session.load(Person.class, 1);
      System.out.println(p);
      System.out.println(p.getIdCard());
      t.commit();
    } catch (HibernateException e) {
      e.printStackTrace();
      t.rollback();
    } finally {
      HibernateUtils.closeSession(session);
    }
  }
}
 
7.測試結果:(打印對象時(shí),我覆蓋了Person和IdCard類(lèi)的toString()方法)
  Hibernate: select hibernate_sequence.nextval from dual
Person:張三
Idcard:1234567890
Hibernate: insert into sxt_hibernate_idCard (cardNo, id) values (?, ?)
Hibernate: insert into sxt_hibernate_person (name, id) values (?, ?)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
hibernate映射關(guān)系總結
hibernate中inverse的用法
hibernate官方入門(mén)教程 (轉載)
Hibernate Annotations 實(shí)戰
hibernate 關(guān)聯(lián)主鍵映射 composite-id - hacker0825的日志...
Eclipse快速上手Hibernate--6.關(guān)聯(lián)映射(一對一)(1)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久