關系映射
          package com.hujuan.bean;

          import java.util.HashSet;
          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 {
              
              
          private String id;
              
          private Float amount;
              
          private Set<OrderItem> items = new HashSet<OrderItem>();
              
              @Id @Column(length
          =10)
              
          public String getId() {
                  
          return id;
              }
              
          public void setId(String id) {
                  
          this.id = id;
              }
              @Column(nullable
          =false)
              
          public Float getAmount() {
                  
          return amount;
              }
              
          public void setAmount(Float amount) {
                  
          this.amount = amount;
              }
              
          //級聯操作
              @OneToMany(cascade= {CascadeType.REFRESH,CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE},fetch=FetchType.LAZY,mappedBy="order")
              
          public Set<OrderItem> getItems() {
                  
          return items;
              }
              
          public void setItems(Set<OrderItem> items) {
                  
          this.items = items;
              }
              
              
          public void addOrderItem(OrderItem orderItem){
                  orderItem.setOrder(
          this);
                  
          this.items.add(orderItem);
              }
          }
          Cascade級聯操作
          CascadeType.
          PERSIST 級聯持久化(保存)操作
          CascadeType.
          MERGE 級聯更新(合并)操作
          CascadeType.
          REFRESH 級聯刷新操作,只會查詢獲取操作
          CascadeType.
          REMOVE 級聯刪除操作
          CascadeType.
          ALL 級聯以上全部操作
          Fetch
          抓取是否延遲加載,默認情況一的方為立即加載,多的一方為延遲加載
          mappedBy
          關系維護
          mappedBy=
          "order" 表示在OrderItem類中的order屬性來維護關系
          package com.hujuan.bean;

          import javax.persistence.CascadeType;
          import javax.persistence.Column;
          import javax.persistence.Entity;
          import javax.persistence.GeneratedValue;
          import javax.persistence.Id;
          import javax.persistence.JoinColumn;
          import javax.persistence.ManyToOne;

          @Entity
          public class OrderItem {
              
              
          private Integer id;
              
          private String productName;
              
          private Float sellPrice = 0f;
              
          private Order order;
              
              
              @Id @GeneratedValue
              
          public Integer getId() {
                  
          return id;
              }
              
          public void setId(Integer id) {
                  
          this.id = id;
              }
              @Column(length
          =30,nullable=false)
              
          public String getProductName() {
                  
          return productName;
              }
              
          public void setProductName(String productName) {
                  
          this.productName = productName;
              }
              @Column(nullable
          =false)
              
          public Float getSellPrice() {
                  
          return sellPrice;
              }
              
          public void setSellPrice(Float sellPrice) {
                  
          this.sellPrice = sellPrice;
              }
              
          //optional=true表示該對象(Order)是可選的,對象(Order)可以不存在
              
          //值為false表示不可選即該對象(Order)必須存在,則在數據庫中的外鍵就不能為null)
              @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false)
              
          //定義外鍵名稱
              @JoinColumn(name="order_id")
              
          public Order getOrder() {
                  
          return order;
              }
              
          public void setOrder(Order order) {
                  
          this.order = order;
              }
          }



          posts - 28, comments - 5, trackbacks - 0, articles - 1

          Copyright © 胡娟

          主站蜘蛛池模板: 疏附县| 怀化市| 门源| 鹤山市| 襄城县| 永靖县| 石棉县| 马尔康县| 高尔夫| 奉化市| 上高县| 胶南市| 来凤县| 荣昌县| 莱州市| 洱源县| 清远市| 东宁县| 偏关县| 门头沟区| 城步| 衡东县| 鄂尔多斯市| 绥德县| 峡江县| 抚顺市| 眉山市| 平谷区| 武汉市| 白沙| 调兵山市| 桑植县| 铜川市| 高尔夫| 青浦区| 松阳县| 万载县| 宁津县| 焦作市| 内乡县| 海伦市|