多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > 框架設計 > jpa 雙向一對多,多對一關聯關系

jpa 雙向一對多,多對一關聯關系

來源:程序員人生   發布時間:2015-01-19 08:55:15 閱讀次數:3338次

1.1.  雙向1對多

Order.java

package com.morris.entity; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name="orders") public class Order { @Id @Column(name="order_id",length=32) private String orderId; @Column(name="order_name",length=50) private String orderName; /** * OneToMany:1對多的配置 * mappedBy="order":指定由多的1方的order屬性保護關聯關系 * */ @OneToMany(cascade={CascadeType.REFRESH,CascadeType.MERGE,CascadeType.REMOVE,CascadeType.PERSIST},fetch=FetchType.LAZY,mappedBy="order") private Set<OrderItem> orderItems; public Order(String orderId, String orderName, Set<OrderItem> orderItems) { super(); this.orderId = orderId; this.orderName = orderName; this.orderItems = orderItems; } public Set<OrderItem> getOrderItems() { return orderItems; } public void setOrderItems(Set<OrderItem> orderItems) { this.orderItems = orderItems; } public Order() { super(); // TODO Auto-generated constructor stub } public Order(String orderId, String orderName) { super(); this.orderId = orderId; this.orderName = orderName; } @Override public String toString() { return "Order [orderId=" + orderId + ", orderName=" + orderName + "]"; } public String getOrderId() { return orderId; } public void setOrderId(String orderId) { this.orderId = orderId; } public String getOrderName() { return orderName; } public void setOrderName(String orderName) { this.orderName = orderName; } }


1.2.  雙向多對1

OrderItem.java

package com.morris.entity; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name="order_item") public class OrderItem { @Id @GeneratedValue @Column(name="order_item_id") private Integer orderItemId; @Column(name="product_name",length=50,nullable=false) private String productName; @Column(name="product_price",nullable=false) private Double productPrice; /** * ManyToOne:多對1的配置 * cascade(級聯):all(所有),merge(更新),refresh(查詢),persistence(保存),remove(刪除) * fetch: eager:立即加載 one的1方默許是立即加載 * lazy:懶加載 many的1方默許是懶加載 * optional:是不是可選,外鍵是不是允許為空 * * JoinColumn:指定外鍵名 * */ @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.EAGER,optional=false) @JoinColumn(name="order_id") private Order order; public OrderItem() { super(); // TODO Auto-generated constructor stub } @Override public String toString() { return "OrderItem [orderItemId=" + orderItemId + ", productName=" + productName + ", productPrice=" + productPrice + ", order=" + order + "]"; } public Integer getOrderItemId() { return orderItemId; } public void setOrderItemId(Integer orderItemId) { this.orderItemId = orderItemId; } public String getProductName() { return productName; } public void setProductName(String productName) { this.productName = productName; } public Double getProductPrice() { return productPrice; } public void setProductPrice(Double productPrice) { this.productPrice = productPrice; } public Order getOrder() { return order; } public void setOrder(Order order) { this.order = order; } public OrderItem(String productName, Double productPrice) { super(); this.productName = productName; this.productPrice = productPrice; } }


 

1.3.  測試

One2ManyTest.java

package com.morris.test; import java.util.HashSet; import java.util.Set; import java.util.UUID; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import com.morris.entity.Order; import com.morris.entity.OrderItem; public class One2ManyTest { private static EntityManagerFactory factory; private static EntityManager manager; @BeforeClass public static void setUpBeforeClass() throws Exception { factory = Persistence.createEntityManagerFactory("jpaDemo"); manager = factory.createEntityManager(); manager.getTransaction().begin(); } @Test public void test() { Order order = new Order(UUID.randomUUID().toString(), "體育商品定單"); OrderItem orderItem1 = new OrderItem("足球",120.0); OrderItem orderItem2 = new OrderItem("籃球",66.0); OrderItem orderItem3 = new OrderItem("羽毛球",118.0); //1定要設置這個,由于orderItem負責保護關聯關系 orderItem1.setOrder(order); orderItem2.setOrder(order); orderItem3.setOrder(order); Set<OrderItem> set = new HashSet<>(); set.add(orderItem1); set.add(orderItem2); set.add(orderItem3); order.setOrderItems(set); manager.persist(order); } @AfterClass public static void setUpAfterClass() throws Exception { manager.getTransaction().commit(); manager.close(); factory.close(); } }


 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产亚洲一区二区三区不卡 | 日韩 国产 欧美视频一区二区三区 | 久久影院在线观看 | www.九色.com| 一区二区三区免费视频播放器 | 亚洲天堂久久精品成人 | 日韩精品一区二区三区小说 | 国产成人毛片亚洲精品不卡 | 亚洲黄色大全 | 中文字幕免费观看 | 亚洲欧美日韩一区二区 | 亚洲精品αv一区二区三区 亚洲精品播放 | 国内精品不卡一区二区三区 | 欧美自拍视频在线 | 中文乱码精品一区二区三区 | 欧美一级视屏 | 天天拍夜夜添久久精品中文 | 黄色网址免费 | 国产成人精品久久一区二区小说 | 亚洲欧美日韩国产 | 国产精品久久久久久久成人午夜 | 精品国产高清不卡毛片 | 亚洲一区二区在线 | 亚洲成年网站在线777 | 中文字幕一区二区三区精彩视频 | 日本欧美做爰全免费的视频 | 久久久久久久岛国免费观看 | 国产免费看网站v片不遮挡 国产免费全部免费观看 | 久久久久国产免费 | 久久精品国产欧美成人 | 黄上床大片 | 日本欧美一区二区三区视频 | 成人不卡在线 | 亚洲已满18点击进入在线观看 | japanese 护士 | 亚洲春色另类 | 伊人久久成人爱综合网 | 国产成人精品高清不卡在线 | 中国free性护士xxxxhd | 午夜视频www| 欧美一级欧美一级毛片 |