Как сделать OneToMany отношения в JPA - PullRequest
0 голосов
/ 21 мая 2019

Я не уверен, что мне не хватает, чтобы создать однозначные отношения с использованием JPA.

Поле username_id во второй таблице создается как ключ MUL, я ожидаю, что Foreign Key, что не так?

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

1 голос
/ 21 мая 2019

В основном вам нужно указать

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

Это хороший учебник, объясняющий сопоставление отношений JPA и Hibernate OneToMany, я настоятельно рекомендую вам проверить его.

Пример сопоставления отношений «один ко многим» в JPA и Hibernate с использованием Spring Boot и MySQL

1 голос
/ 21 мая 2019

Вам необходимо добавить mappedBy в @OneToMany

 @OneToMany(cascade = CascadeType.ALL, mappedBy = "loginAndPassword")
 List<GradeEntity> g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...