JPA多对一单向关联

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

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

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

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

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

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


原文地址:https://blog.csdn.net/u011983531/article/details/48728761
posted @ 2019-06-20 17:00  星朝  阅读(595)  评论(0编辑  收藏  举报