Java JPA如何将一个实体实例与另一个实体的所有实例相关联?

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

我使用一个嵌入式H2数据库,在该数据库中,我使用@OneToMany关系将一个实体实例(产品)与其他实体(供应商)的多个实例相关联;当我有特定产品的特定供应商时,这很有用。但是现在,我想将所有供应商与每个产品关联起来;我不想在供应商表中为每种产品生成不同的供应商记录,相反,我希望在供应商表中仅具有5条记录(5个供应商),这些记录与每个产品相关联,我只想说几句就像“一个所有人”一样,是否可以使用JPA注释?

产品实体

@Entity
public class Product {

    @Id
    private String productCode;

    @OneToMany
    @JoinColumn(name = "supplier_id", referencedColumnName = "productCode")
    private List<Supplier> suppliers;

}

供应商实体

@Entity
public class Supplier {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

    private String name;
}
java jpa entity h2 one-to-many
1个回答
0
投票

如果要使用单向关系:

@Entity
public class Product {

    @Id
    // @Column(name = "id") maybe
    // @GeneratedValue maybe
    private String productCode;

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) // according to your need
    private List<Supplier> suppliers;

}

而且

@Entity
public class Supplier {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;
}
© www.soinside.com 2019 - 2024. All rights reserved.