【问题标题】:One To Many Mapping creates 3 tables一对多映射创建 3 个表
【发布时间】:2019-01-12 23:35:37
【问题描述】:

您好,我正在使用 h2 数据库和休眠的一对多映射。我的 Spring Boot 应用程序使用实体类创建表。我发现有 3 个表正在创建。因此,只有在多对多的情况下,我们才有第三张表来维护两者之间的关系。就我而言,即使是一对多的情况,我也可以看到正在创建 3 个表。有人可以阐明这一点。

@ApiModel(description = "Class representing a Order placed by custormer")
@Entity
 @Table(name = "order_taken")
  public class Order {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "order_id")
private int orderId;

@Column(name = "quantity")
private int quantity;


@OneToMany(fetch = FetchType.LAZY ,cascade = CascadeType.ALL)
private Set<Item> items;


 @ApiModel(description = "Class representing all coffee varieties in our 
   Restaurant")
  @Entity
     @Table(name="items")
     public class Item {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="item_id")
private int itemId;

@Column(name="item_name")
private String itemName;

@Column(name="price")
private double price;

对于上述实体,有 3 个表项,orders_taken 和 orders_taken_item。

【问题讨论】:

    标签: hibernate spring-boot jpa h2


    【解决方案1】:

    如果您不想创建关系表,则需要指定@JoinColum

    将此添加到Order 表中:

    @OneToMany(fetch = FetchType.LAZY ,cascade = CascadeType.ALL)
    @JoinColumn(name = "order_id")
    private Set<Item> items;
    

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多