我正在学习Spring Data JPA,并且在建立这两个表之间的关系时遇到了一些麻烦:
产品只能有一种类型。一种类型可以与许多产品相关联。
我会在实体类中使用@OnetoMany和@ManytoOne注释吗?
答案 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是一本非常好的教程,可以帮助你。