代码之家  ›  专栏  ›  技术社区  ›  SerSergious

了解onetomany和manytoone JPA

  •  -1
  • SerSergious  · 技术社区  · 7 年前

    我不明白JPA中的一对一和多对一是如何运作的。对于一个样本,我必须实体。

    @Entity
    public class Customer {
        @Id
        @GeneratedValue
        private long id;
        private String name;
        private List<Skills> skillList
    }
    

    还有一个

    @Entity
    public class SkillList {
        private String skillName;
        private byte skillLevel;
    }
    

    如何更正此实体的链接?还有,如果有人能以一种容易理解的方式解释它。

    1 回复  |  直到 7 年前
        1
  •  1
  •   k13i    7 年前

    在数据库中,一对多关系是通过外键实现的。 为了根据JPA规范在Java中链接两个实体,您应该使用 @ManyToOne 注释或两者 @曼尼托内 @OneToMany 如果需要双向关联。

    @Entity
    public class Customer {
        @Id
        @GeneratedValue
        private Long id;
        private String name;
        @OneToMany(mappedBy = "customer")
        private List<Skill> skills;
    }
    
    @Entity
    public class Skill {
        @Id
        @GeneratedValue
        private Long id;
        private String skillName;
        private byte skillLevel;
        @ManyToOne
        private Customer customer;
    }
    

    它将在数据库中生成两个表。桌子 SKILL has列 CUSTOMER_ID 其中涉及 CUSTOMER 桌子