【发布时间】:2016-12-21 15:52:50
【问题描述】:
我有一个Spring Boot 1.3.5-RELEASE 应用程序,它使用JPA 将我的USERS 与ROLES 关联到Bi-directional ManyToMany 关系。
用户
@Table(name = "Users")
@Entity
public class User extends BaseEntity {
@NotEmpty
@Column(unique = true)
private String username;
@NotEmpty
private String password;
@JoinColumn(name = "user_iid")
@OneToMany
private Set<UserRole> userRoles;
//getters and setters
UserRole(中间表)
@Table(uniqueConstraints = @UniqueConstraint(columnNames = { "user_iid", "role_iid" }))
@Entity
public class UserRole extends BaseEntity {
@RestResource(exported = false)
@ManyToOne
@NotNull
private User user;
@ManyToOne
private Role role;
//getters and setters
角色
@Entity
public class Role extends BaseEntity {
@NotEmpty
@Column(unique = true)
private String name;
@JoinColumn(name = "role_iid")
@OneToMany
private Set<UserRole> userRoles;
//getters and setters
BaseEntity 是一个具有Ids 和Version 生成器的类。
存储库
@Repository
public interface Repository extends JpaRepository<Role, String> {
Role findByIid(@Param("iid") final String iid);
当我卷曲 localhost:8080/roles/search/findByIid?iid=1 时,我得到一个 StackOverflow。如果对象不存在,应用程序响应正常。
我已经尝试过@JsonIgnore,但还是不行。
谢谢
【问题讨论】:
标签: jpa spring-boot many-to-many stack-overflow infinite-recursion