一對一關聯映射(註解)


一對一關聯映射(註解)


@one-to-one可選屬性

  1. name:映射類屬性的名字

  2. class:映射的目標類

  3. cascade:設置操作中的級聯策略 可選值爲 all所有操作情況均進行級聯、none所有操作情況均不進行級聯、save-update執行更新操作時級聯、delete執行刪除操作時級聯

  4. constrained:表明當前類對應的表與被關聯的表之間是否存在着外鍵約束 默認值爲false

  5. fetch:設置抓取數據的策略 可選值爲 join外連接抓取、select序列選擇抓取

  6. property-ref:設置關聯類的屬性名,此屬性和本類的主鍵相對應 默認值爲關聯類的主鍵

  7. access:Hibernate訪問這個屬性的策略 默認值爲property

  8. formula:絕大多數一對一關聯都指向其實體的主鍵。在某些情況下會指向一個或多個字段或是一個表達式,此時可用一個SQL公式來表示

  9. lazy:指定是否採用延遲加載及加載策略 默認值爲proxy通過代理進行關聯 可選值爲 true此對象採用延遲加載並在變量第一次被訪問時抓取、false此關聯對象不採用延遲加載

  10. entity-name:被關聯類的實體名


基於主鍵的一對一關聯映射註解

    

public class Employee{

       @Id

       @GeneratedValue(strategy=GenerationType.AUTO)

      private Integer id;

      private String name;

       @OneToOne

       @PrimaryKeyJoinColumn

      private Address  address;

      . .  .

}


public class Address{

  @Id      //不配置主鍵生成方式以便使用主表的主鍵生成

      private Integer id;

      private String address;

       @OneToOne

       @PrimaryKeyJoinColumn

      private Employee  employee;

      .  .  .

 }


基於外鍵的一對一關聯映射註解


    

        @Entity

         @Table(name=t_employee)

         public class Employee{

              private Integer id;

              private String name;

               @OneToOne(cascade={CascadeType.PERSIST,CascadeType.REFRESH})

               private Address  address;

              . .  .

    }

    

        public class Address{

              private Integer id;

              private String address;

               @ManyToOne(cascade=CascadeType.PERSIST)

               @JoinColumn(unique=true)

              private Employee  employee;

              .  .  .

     }

    

    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章