JPA多对一单向关联

Posted 1斑点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.     }

以上是关于JPA多对一单向关联的主要内容,如果未能解决你的问题,请参考以下文章

JPA中实现单向一对多的关联关系

JPA:单向多对一和级联删除

5JPA-映射-单向多对一

Hibernate单向“多对一”关联

Hibernate,关系映射的多对一单向关联多对一双向关联一对一主键关联一对一外键关联多对多关系关联

一口一口吃掉Hibernate——多对一单向关联映射