JPA一對多,多對一雙向關聯

2021-07-05 03:13:52 字數 2196 閱讀 9987

下面是乙個訂單與訂單項的配置。

級聯操作與懶載入的配置在注釋裡面有詳細的描述。

訂單(order):

@entity

@table(name="orders")

public class order

* 級聯重新整理:當獲取最新的訂單記錄時,是否獲取最新的訂單項記錄

* 級聯儲存:當儲存order的時候,需不需要對對order下面的orderitem進行儲存

* 級聯合並(更新):當order處於游離態的時候,如果更新order時,items修改了,是否把orderitem同步更新到資料庫

* 級聯刪除:當刪除order時,是否對order裡面的所有orderitem也執行刪除操作(順序是:先刪除訂單項,再刪除訂單)

* * 注意:1只用呼叫refresh()方法時,級聯重新整理才起作用

*        只有呼叫persist()方法時,級聯儲存才起作用

*        只用呼叫merge()方法時,級聯更新才起作用

*        只用呼叫delete()方法時,級聯刪除才起作用

*       2需要用到級聯重新整理的情形:當我們獲取到一條記錄後,在對這個記錄操作的時候,有人把這條記錄修改了,如果我們想拿到最新的資料,必須呼叫refresh()方法

*        即使呼叫find()方法也獲取不到最新的資料,因為再次呼叫find()方法是,是從entitymanager的一級快取中取資料。

*        如:entitymanager em = factory.createentitymanager();

*         person person = em.find(person.class,1)

*         em.refresh();

*         system.out.println(person);

*     

*//*

* fetch=fetchtype.eager    fetch=fetchtype.lazy

* 如果希望獲取order的時候,立即獲取orderitem集合,用fetchtype.eager

* 如果希望獲取order的時候,並不需要立即獲取orderitem集合,只有訪問items屬性並對其操作的時候才獲取,用fetchtype.lazy

* * 注意: 1.訪問延遲屬性時,entitymanger必須是開啟狀態,否則會丟擲延遲載入例外

*     2.如果是得到多的一方,預設的是延遲載入,例如:onetomany

*       如果是得到一的一方,預設的是立即載入,例如:onetoone,manytoone

*//*

* 相當於hibernate中:

* *

*/@onetomany(cascade=,

private setitems = new hashset();

public string getorderid()

public void setorderid(string orderid)

public float getamount()

public void setamount(float amount)

public setgetitems()

public void setitems(setitems)

訂單項(orderitem):

@entity

public class orderitem ,

fetch=fetchtype.eager,optional=false)

@joincolumn(name="order_id")

private order order;

public integer getid()

public void setid(integer id)

public string getproductname()

public void setproductname(string productname)

public float getsellprice()

public void setsellprice(float sellprice)

public order getorder()

public void setorder(order order)

Hibernate在關於一對多,多對一雙向關聯對映

hibernate 之關於一對多,多對一雙向關聯對映 因為一對多。和多對一的雙向關聯對映基本上一樣,所以這裡就一起寫下來!annotations 配置 entity table name t group publicclass group publicvoid setid integerid col...

NH一對一 雙向主鍵關聯對映

nh 一對一 雙向主鍵關聯對映 概述 nhibernate 表之間的幾種關係不易把握,現根據個人學習,進行總結.nh一對一有三種設定方式,分別為 單向主鍵關聯對映 雙向主鍵關聯對映 唯一外來鍵關聯對映 本文以雙向主鍵關聯對映作為學習 a.實體 public class parent public v...

hibernate 一對一雙向關聯 外來鍵

這種情況是多對一的特例,即外來鍵不准重複。1.單向一對一 person類 package com.bjpowernode.hibernate.domain public class person public void setname string name public int getid pub...