在使用没有@JsonIgnore的rest服务后出错
我有一个映射用户*------------1个Sexe 用户类在使用没有@JsonIgnore的rest服务后出错,rest,spring-boot,angular6,Rest,Spring Boot,Angular6,我有一个映射用户*------------1个Sexe 用户类 公共类用户{ @许多酮 @JoinColumn(name=“sexe\u id”) 私人性爱; //其余属性 } 性课 公共类Sexe{ @OneToMany(mappedBy=“sexe”,fetch=FetchType.LAZY) 私人名单用户; //其余属性 } 以及用于rest调用的控制器 @GetMapping("/users") public List<User> getAllUsers() {
公共类用户{
@许多酮
@JoinColumn(name=“sexe\u id”)
私人性爱;
//其余属性
}
性课
公共类Sexe{
@OneToMany(mappedBy=“sexe”,fetch=FetchType.LAZY)
私人名单用户;
//其余属性
}
以及用于rest调用的控制器
@GetMapping("/users")
public List<User> getAllUsers()
{
System.out.println("Get all Users...");
List<User> users = new ArrayList<>();
userRepository.findAll().forEach(users::add);
return users;
}
在谷歌搜索之后,我发现解决方案是使用@JsonIgnore
。
这个注释解决了我的问题。但是使用此注释会导致角度问题
你有没有其他建议来避免这个例外?。非常感谢您的帮助。
JsonIgnore
不是唯一的解决方案。您还可以使用@JsonManagedReference
和@JsonBackReference
@ManyToOne
@JsonBackReference
@JoinColumn(name="sexe_id")
private Sexe sexe;
@JsonManagedReference
@OneToMany(mappedBy="sexe", fetch = FetchType.LAZY)
private List<User> users;
@ManyToOne
@JsonBackReference
@JoinColumn(name=“sexe\u id”)
私人性爱;
@JsonManagedReference
@OneToMany(mappedBy=“sexe”,fetch=FetchType.LAZY)
私人名单用户;
请参见能否添加完整堆栈跟踪,您好,先生@Avi,谢谢您的回复。就是这样,异常重复了很多次,stackoverflow不支持这种重复(警告:最大字符数)
@ManyToOne
@JsonBackReference
@JoinColumn(name="sexe_id")
private Sexe sexe;
@JsonManagedReference
@OneToMany(mappedBy="sexe", fetch = FetchType.LAZY)
private List<User> users;