JPA多对一单向关联

在实际开发过程中,JPA多对一单向关联是使用最多的关联方式。

下面是订单与订单项的配置关系。

订单(Order):一的一方,不进行任何配置

 
  1. @Entity  
  2. @Table(name="orders")  
  3. public class Order {  
  4.       
  5.     @Id  
  6.     @Column(length=40)  
  7.     private String orderId;        //订单ID  
  8.       
  9.     @Column(nullable=false)  
  10.     private Float amount = 0f;    //总价  
  11.      
  12.     private Set<OrderItem> items;//订单项(可有可无,查询订单时,无法查出此项)  
  13.   
  14.     public String getOrderId() {  
  15.         return orderId;  
  16.     }  
  17.       
  18.     public void setOrderId(String orderId) {  
  19.         this.orderId = orderId;  
  20.     }  
  21.     public Float getAmount() {  
  22.         return amount;  
  23.     }  
  24.       
  25.     public void setAmount(Float amount) {  
  26.         this.amount = amount;  
  27.     }  
  28.   
  29.     public Set<OrderItem> getItems() {  
  30.         return items;  
  31.     }  
  32.   
  33.     public void setItems(Set<OrderItem> items) {  
  34.         this.items = items;  
  35.     }  

订单项(OrderItem):多的一方,进行ManyToOne关联配置。

 
    1. @Entity  
    2. public class OrderItem {  
    3.       
    4.     @Id  
    5.     @GeneratedValue //ID自增长  
    6.     private Integer id;  
    7.       
    8.     @Column(length=40,nullable=false)  
    9.     private String productName;  
    10.   
    11.     @Column(nullable=false)  
    12.     private Float sellPrice;  
    13.       
    14.     /* 
    15.      * @JoinColumn(name="order_id") 数据库中外键的名字为order_id 
    16.      */  
    17.     @ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},  
    18.             fetch=FetchType.EAGER,optional=false)  
    19.     @JoinColumn(name="order_id")  
    20.     private Order order;  
    21.       
    22.     public Integer getId() {  
    23.         return id;  
    24.     }  
    25.       
    26.     public void setId(Integer id) {  
    27.         this.id = id;  
    28.     }  
    29.     public String getProductName() {  
    30.         return productName;  
    31.     }  
    32.       
    33.     public void setProductName(String productName) {  
    34.         this.productName = productName;  
    35.     }  
    36.     public Float getSellPrice() {  
    37.         return sellPrice;  
    38.     }  
    39.       
    40.     public void setSellPrice(Float sellPrice) {  
    41.         this.sellPrice = sellPrice;  
    42.     }  
    43.   
    44.     public Order getOrder() {  
    45.         return order;  
    46.     }  
    47.   
    48.     public void setOrder(Order order) {  
    49.         this.order = order;  
    50.     }
原文地址:https://www.cnblogs.com/MAPO/p/8508407.html