如何在JPA中实现一对多关系

时间:2019-05-21 16:18:21

标签: java spring jpa

我不确定使用JPA建立一对一关系时会缺少什么。

第二个表中的字段username_id被创建为MUL密钥,我期待外键,这是怎么回事?

@Entity
@Table(name="userandpassword")
public class LoginAndPassword {

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

    @Column(name = "username")
    private String username;

    @Column(name = "user_password")
    private String user_password;

    @OneToMany(cascade = CascadeType.ALL)
    List<GradeEntity> g;

//getters, setters

@Entity
@Table(name = "grades")
public class GradeEntity {

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

    @Column(name = "grade")
    private String grade;

    @Column(name = "comment")
    private String comment;

    @ManyToOne
    @JoinColumn(name= "username_id")
    private LoginAndPassword loginAndPassword;

//getters,setters

2 个答案:

答案 0 :(得分:1)

您需要在@OneToMany

中添加mappedBy
 @OneToMany(cascade = CascadeType.ALL, mappedBy = "loginAndPassword")
 List<GradeEntity> g;

答案 1 :(得分:1)

基本上,您需要指定

@OneToMany(mappedBy = "loginAndPassword", cascade = CascadeType.ALL)
List<GradeEntity> g;

这是一个很好的教程,解释了JPA和Hibernate OneToMany关系映射,我强烈建议您检查一下。

JPA and Hibernate One To Many Relationship Mapping Example with Spring Boot and MySQL