在 JPA 中使用附加属性创建连接表的正确方法?

问题描述 投票:0回答:0

我有以下实体(为此线程的目的进行了简化):

Product.java

@Entity
@Table(name = "Product")
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(nullable = false)
    private String name;
    
    // getters, setters,...
}

Ingredient.java

@Entity
@Table(name = "Ingredient")
public class Ingredient {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(nullable = false)
    private String name;

    // getters, setters,...
}

我想添加多对一关系来表示由一定数量的某些成分制成的产品。

类似下面的内容只会包含有关产品由哪些成分制成的信息,但不会告诉我它包含的每种成分的数量。将简单的

amount
属性添加到连接表的最JPA方式是什么?

Product.java

@Entity
@Table(name = "Product")
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(nullable = false)
    private String name;

    @ManyToMany
    @JoinTable(
        name = "Product_Ingredient",
        joinColumns = @JoinColumn(name = "product_id"),
        inverseJoinColumns = @JoinColumn(name = "ingredient_id")
    )
    private List<Ingredient> ingredients;

    // getters, setters,...
}
jpa many-to-many
© www.soinside.com 2019 - 2024. All rights reserved.