IT序号网

JPA多对一单向关联知识解答

developer 2021年06月14日 数据库 152 0

在实际开发过程中,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

发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

@JoinColumn 详解知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。