繁体   English   中英

Spring Data JPA关系注释

[英]Spring Data JPA Relationship Annotations

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

  • 带有ID,名称,product_type_id列的产品表
  • 带有列ID,名称的product_type表

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

我在实体类中的哪里使用@OnetoMany和@ManytoOne注释?

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

@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
}

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

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

@OneToMany(mappedBy = "type")

我还将建议您选择一本有关jpa 2的优秀教程书,并特别学习关系部分,因为它有很多规则,您只能通过自己学习来学习,否则您将继续在这里提问,请相信我。

Pro JPA 2:Apress精通JAVA持久性API是一本非常不错的教程,可以为您提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM