關系映射
          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 © 胡娟

          主站蜘蛛池模板: 甘孜县| 沈阳市| 祥云县| 安徽省| 鱼台县| 天等县| 兰溪市| 外汇| 甘谷县| 和静县| 辉县市| 历史| 中江县| 秦安县| 铁岭市| 贵州省| 苍南县| 宣城市| 阳朔县| 荔波县| 交城县| 阿拉善盟| 镇江市| 安庆市| 海盐县| 鸡西市| 河北省| 阳高县| 屏东市| 张掖市| 五华县| 鹰潭市| 沧州市| 天柱县| 松滋市| 承德县| 三门峡市| 晋州市| 谷城县| 庆阳市| 灌云县|