日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

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(); } }


 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲免费高清 | 日本a视频 | 操操日| 久久久久久久亚洲视频 | 中文成人在线 | 国产天堂 | 久久久女女女女999久久 | 久久久天堂国产精品女人 | 日韩欧美亚洲国产精品字幕久久久 | 国产又黄又爽又色在线视频播放 | 久久成人一区二区 | 成年人免费网站 | xxxx欧美| 成人午夜小视频 | 国产一区二区三区四区五区tv | 久久久久中文字幕 | 国产亚洲精品久久久 | 成人在线视频免费 | 亚洲视频在线视频 | 黄色大片在线播放 | 高清久久 | 亚洲欧美视频一区 | 欧美在线观看一区 | 成人教育av | 久久久久久久一区 | 一区二区三区久久久 | 日韩精品一级毛片在线播放 | 天堂在线www | 国产一区二区视频免费观看 | 国产黄色大片 | 丝袜 亚洲 另类 欧美 综合 | 国产精品久久久久aaaa九色 | 国产在线一区二区三区视频 | 国产日韩在线播放 | 日韩精品一区二区久久 | 日韩视频一级 | 亚洲免费毛片 | 成人黄色电影在线观看 | 久久av中文字幕 | 久久精品在线视频 | 国产精品中文字幕在线观看 |