Я создаю веб-приложение, используя Spring Framework и Hibernate с аннотацией, и застрял с простым сопоставлением двух сущностей.
Я пытаюсь создать отношения «многие ко многим» между пользователем и курсом. Я следовал одному из руководств Hibernate, и моя реализация выглядит следующим образом:
Класс пользователя:
@Entity
@Table(name="USER")
public class User {
private Long id;
private String email;
private String password;
private Set<Course> courses = new HashSet<Course>(0);
@Id
@GeneratedValue
@Column(name="USER_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="USER_EMAIL")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name="USER_PASSWORD")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "USER_COURSE", joinColumns =
{ @JoinColumn(name = "USER_ID") },
inverseJoinColumns = { @JoinColumn(name = "COURSE_ID") })
public Set<Course> getCourses() {
return courses;
}
public void setCourses(Set<Course> courses) {
this.courses = courses;
}
}
Класс курса:
@Entity
@Table(name="COURSE")
public class Course {
private Long id;
private String name;
@Id
@GeneratedValue
@Column(name="COURSE_ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="NAME")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Проблема в том, что эта реализация позволяет мне идти только в одну сторону
user.getCourses()
Что мне нужно изменить, чтобы я мог идти в обоих направлениях?
user.getCourses()
course.getUsers()
Буду признателен за любую помощь.