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

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

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

1. 

2.

@Entity


3.


@Table(name="orders")


4.


public class Order {


5.




6.

@Id



7.

@Column(length=40)


8.

private String orderId; //订单ID



9.




10.

@Column(nullable=false)


11.

private Float amount = 0f; //总价



12.




13.

private Set<OrderItem> items;//订单项(可有可无,查询订单时,无法查出此项)



14.




15.

public String getOrderId() {


16.

return orderId;


17.

}


18.




19.

public void setOrderId(String orderId) {


20.

this.orderId = orderId;


21.

}


22.

public Float getAmount() {


23.

return amount;


24.

}


25.




26.

public void setAmount(Float amount) {


27.

this.amount = amount;


28.

}


29.




30.

public Set<OrderItem> getItems() {


31.

return items;


32.

}


33.




34.

public void setItems(Set<OrderItem> items) {


35.

this.items = items;


36.

}


37.



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

1. 

2.

@Entity


3.


public class OrderItem {


4.




5.

@Id



6.

@GeneratedValue //ID自增长



7.

private Integer id;


8.




9.

@Column(length=40,nullable=false)


10.

private String productName;


11.




12.

@Column(nullable=false)


13.

private Float sellPrice;


14.




15.

/*



16.

* @JoinColumn(name="order_id") 数据库中外键的名字为order_id


17.

*/


18.

@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},


19.

fetch=FetchType.EAGER,optional=false)


20.

@JoinColumn(name="order_id")


21.

private Order order;


22.




23.

public Integer getId() {


24.

return id;


25.

}


26.




27.

public void setId(Integer id) {


28.

this.id = id;


29.

}


30.

public String getProductName() {


31.

return productName;


32.

}


33.




34.

public void setProductName(String productName) {


35.

this.productName = productName;


36.

}


37.

public Float getSellPrice() {


38.

return sellPrice;


39.

}


40.




41.

public void setSellPrice(Float sellPrice) {


42.

this.sellPrice = sellPrice;


43.

}


44.




45.

public Order getOrder() {


46.

return order;


47.

}


48.




49.

public void setOrder(Order order) {


50.

this.order = order;


51.

}


52.