Spring Data JPA关系注释

时间:2017-06-07 21:27:08

标签: java spring jpa

我正在学习Spring Data JPA,并且在建立这两个表之间的关系时遇到了一些麻烦:

  • 包含列ID,名称,product_type_id
  • 的产品表
  • product_type表,列id,名称

产品只能有一种类型。一种类型可以与许多产品相关联。

我会在实体类中使用@OnetoMany和@ManytoOne注释吗?

3 个答案:

答案 0 :(得分:2)

对于您在问题中提到的情况,您的实体应该是:

@Entity
public class Product {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @ManyToOne
    private ProductType type;

    // Getters and setters
}
@Entity
public class ProductType {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @OneToMany(mappedBy = "type")
    private List<Product> products;

    // Getters and setters
}

答案 1 :(得分:0)

实体产品应具有带注释@ManyToOne的字段ProductType。 实体ProductType应具有带注释的字段集@OneToMany(mappedBy ='productType')

答案 2 :(得分:0)

Cassio Mazzochi Molin的答案应该在纠正他在逆实体(即ProductType类)中犯下的小错误后适合你。 @OneToMany应映射到拥有实体(即Product类)中的变量类型,而不是productType。那条线应该是

@OneToMany(mappedBy = "type")

我还建议你选择一本关于jpa 2和学习的好教程书,特别是关系部分,因为它有很多规则,你只能通过自己学习来学习,你会继续问这里有问题,相信我。

Pro JPA 2:掌握Apress的JAVA持久性API是一本非常好的教程,可以帮助你。