【发布时间】:2020-04-19 18:38:28
【问题描述】:
我有三个表:user、group 和 membership。 membership 表是用户和组的连接表,因为用户可以是多个组的成员,反之亦然。
我有一个 Spring Boot 应用程序,我想在其中访问某个用户的组。
用户类
@Entity
public class User {
/* members */
@OneToMany
@JoinTable(
name = "membership",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "group_id")
)
private Set<Group> groups;
public Set<Group> getGroups() {
return groups;
}
/* getters, setters */
}
团体课
@Entity
public class Group {
/* members */
@OneToMany
@JoinTable(
name = "membership",
joinColumns = @JoinColumn(name = "group_id"),
inverseJoinColumns = @JoinColumn(name = "user_id")
)
private Set<User> users;
public Set<User> getUsers() {
return users;
}
/* getters, setters */
}
用法
Integer id;
User user = userRepository.findById(id).get();
Set<Group> groups = user.getGroups();
当我调试代码时,我收到以下错误:
Unable to evaluate the expression Method threw 'org.hibernate.exception.SQLGrammarException' exception.
我是 Spring Boot 和 Hibernate 的初学者。
谢谢。
【问题讨论】:
标签: java hibernate spring-boot