1. 程式人生 > >JPA總結——實體關係對映(一對多@OneToMany)

JPA總結——實體關係對映(一對多@OneToMany)


表address中的customer_id為customer表中的id的值,通過customer_id可以找到相應的customer的記錄。
將表customer對映為CustomerEO實體,程式碼如下:
    @Entity
    @Table(name="customer")
    public class CustomerEO implement Serializable{
        @Id
        @GeneratedValue(stragegy=GenerationType=AUTO)
        private int id;

        @OneToMany(casade={CascadeTypeType.ALL})

        @JoinColumn(name="customer_id")
        public Collection<AddressEO> getAddress() {
              return address;

        }
        ....
    }

一對多@OneToMany註解說明:
@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface OneToMany {
    Class targetEntity() default void.class;
    CascadeType[] cascade() default {};

    FetchType fetch() default EAGER;
    String mappedBy() default "";
}
# targetEntity屬性表示預設關聯的實體型別,預設為當前標註的實體類;
因為一對多的實體集合時儲存在集合類中,因此必須指明集合類中儲存的具體型別:
1)指定集合泛型的具體型別;如public Collection<AddressEO> getAddress() {...
2)指定targetEntity屬性型別;如:@OneToMany(targetEntity=AddressEO.class,casade={CascadeTypeType.ALL})

# cascade屬性表示與此實體一對一關聯的實體的聯級樣式型別。聯級樣式上當對實體進行操作時的策略。
     說明:在定義關係時經常會涉及是否定義Cascade(級聯處理)屬性,擔心造成負面影響.
        ·不定義,則對關係表不會產生任何影響
        ·CascadeType.PERSIST (級聯新建)
        ·CascadeType.REMOVE (級聯刪除)
        ·CascadeType.REFRESH (級聯重新整理)
        ·CascadeType.MERGE (級聯更新)中選擇一個或多個。
        ·還有一個選擇是使用CascadeType.ALL ,表示選擇全部四項
# fetch屬性是該實體的載入方式,有兩種:LAZY和EAGER。預設為惰性載入,一般也建議使用惰性載入。
# mappedBy屬性用於雙向關聯實體時使用。

對映策略——表關聯
在具體的設計中我們也會使用到使用另外單獨的一張表來關聯實體關係。比如customer和address例子中,我們增加一張ref_customer_address表儲存以上兩表的關係。
表結構如下:

相關推薦

JPA總結——實體關係對映一對@OneToMany

表address中的customer_id為customer表中的id的值,通過customer_id可以找到相應的customer的記錄。將表customer對映為CustomerEO實體,程式碼如下:    @Entity    @Table(name="customer")    public clas

JAVAWEB開發之Hibernate詳解——Hibernate的持久化類狀態與轉換、以及一級快取詳解、關聯關係對映一對、級聯

package cn.test.hibernate3.demo2; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import cn.test.hibernate3.demo2.

Hibernate關聯對映一對/

3.  Hibernate關聯對映 上接Hibernate持久化類:https://blog.csdn.net/biggerchong/article/details/84260707 目錄 3.  Hibernate關聯對映 3.1 資料庫

hibernate 關聯關係配置一對對一

Hibernate 關聯關係:        1. 什麼是關聯(association)            1.1 關聯指的是類之間的引用關係。如果類A與類B關聯,那麼被引用的類B將被定義為類

高階對映 一對 ,延遲載入

<!-- 一對一查詢 --> <resultMap type="cn.labelnet.pojo.OperationCustionMap" id="operationClient"> <id column="id" property="id" /> <re

hibernate關聯關係註解一對對一、一對一

一對多、多對一、一對一的註解實現 casecade={CasecadeType.REFRESH}的含義是隻是查詢級聯,它還有其他3個型別: CascadeType.MERGE級聯更新 CascadeType.PERSIST級聯儲存 CascadeType.REMOVE級聯刪

Hibernate關係對映--雙向一對@OnToMany

<span style="font-family:Microsoft YaHei;">//表一(一的一方) @Entity @Table(name = "T_JC_test1") @Where(clause="recordStatus='"+GlobalConstant.FLAG_Y+"'") p

2、Hibernate 實體對映兩種形式

一、註解配置     介紹            @註解配置中,實體類用@Entity註解,用@Table指定對應的資料表,用@Id配置主鍵,用@Column配置普通屬性,用@OneToMany、@ManyToOne、@OneToOne、@ManyToMany配置實體間的關

SSM實現表連線查詢一對關聯

    SSM 各種配置資訊 就 不再贅述,之前一篇寫過。表1 對應的 pojo      - - - 表1 欄位   id、name          List<Two>是表2 查詢返回來的結果集表2 對應的 pojo    ---- 表2 欄位 id、name

JPA學習筆記8——對映雙向一對關聯關係

                        雙向一對多關聯關

JPA:對映雙向一對關聯關係

1.顧客實體類程式碼: package com.wayne.helloworld; import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.persistence.Cascad

持久化APIJPA系列(七)實體關係對映(ORM)之單表對映@IdClass

通過以前的文章,我們瞭解到@Table、@Column、@Id實現了單表的對映,並且書劍有一個@Id指定的唯一欄位。有時我們的資料表也許是有多個主鍵聯合組成的,因此對於單表對映的主鍵,還可以進行如下兩種聯合主鍵對映。        

JPA對映關係詳細說明(一對對一,一對一、、@JoinColumn、mappedBy說明

JPA中的對映關係 jpa中維護one to one ,one to many, many to one ,many to many 四種對映關係。       在每個關係中,雙方中的一方在其表中擁有連線列。那麼一方稱為所有方(owning side) 或者關係的所有者。

hibernate關聯關係一對對一

1.什麼是關聯關係? 關聯關係是指兩個實體或者表有相互關聯,比如在學生表中,學生表有班級id,那麼學生表中的班級id就關聯班級表中班級Id欄位。因此關聯關係,可以看成是一種外來鍵關係。 2.為什麼要有關聯關係? 為了實現級聯操作,刪除班級中某個學生,會連帶刪除學生表中的

五、hibernate表與表之間的關係一對關係

資料庫表與表之間的關係 一對多:一個學校可以有多個學生,一個學生只能有一個學校 多對多:一個學生可以有多個老師,一個老師可以教多個學生 一對一:一個人只能有一個身份證號,一個身份證號只能找到一個人 一對多關係 建立學生和學校表 create table school( sc

Hibernate關係對映單向關聯@ManyToMany Annotation方式

本篇介紹多對多的單向關聯,多對多的處理方式是,有一張中間表,中間表儲存兩個多方之間的關係。首先來看實際應用場景:在之前開發的系統中,應用了基於角色的控制訪問,也就是RBAC模型,一個使用者可能存在多種角色,一種角色也可能有多個使用者,所以使用者和角色之間是一個多

資料庫中表與表之間建立關係一對

一、一對多的關係 例:公司與員工的關係,公司為一,公司員工為多,需要在多方建立外來鍵指向一方的主鍵。 一對多讓兩個實體類之間相互表示 (1)一個公司裡面有多個員工。 private Set<yuangong> yuangongSet=new HashSet

使用Visio畫出各模型的關係一對一,一對

一.使用Visio建立一個關係圖 點選新建如圖所示: 搜尋:uml資料庫表示法 選擇 uml資料庫表示法,得到如圖: 一.建立一個一對一關係圖 如圖: 三.建立一個一對多關係圖 如圖: 自此已經完成,有些人感覺這裡有虛線看著很難受,我們可以這樣

JPA實體關係對映

實體關係是指實體與實體之間的關係,從方向上分為單向關聯和雙向關聯,從實體數量上分為一對一、一對多、多對多等。對於任何兩個實體,都要從這兩個方面區分它們之間的關係。 單向關聯是一個實體中引用了另外一個實體,也即通過一個實體可以獲取另一個實體物件的引用;雙向關聯是兩個實體之間

【大話設計模式】——行為型模式總結一對

    根據上上一篇部落格的分類,這篇部落格總結一下有一對多關係的模式:職責鏈,中介者,觀察者,迭代器。其實這幾個模式沒什麼大關係,也沒什麼可以比較的,硬是讓我把它們放在了一起。 一、職責鏈(Cha