@JsonIgnore
注释无法正常工作且我未在Spring Framework
使用此处的代码如下:
import Plat.Hibernate.Util.DataBaseObject;
import org.codehaus.jackson.annotate.*;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@Entity
public class Parent implements DataBaseObject{
private int id;
private String name;
@JsonIgnore
private List<Child> child;
public Parent(){
child = new ArrayList<>();
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(mappedBy = "parent",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JsonIgnore
public List<Child> getChild() {
return child;
}
@JsonIgnore
public void setChild(List<Child> child) {
this.child = child;
}
}
和另一个班级:
import org.codehaus.jackson.annotate.*;
import javax.persistence.*;
@Entity
public class Child implements DataBaseObject{
private int id;
private String name;
@JsonIgnore
private Parent parent;
public Child() {
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
@JsonIgnore
public Parent getParent() {
return parent;
}
@JsonIgnore
public void setParent(Parent parent) {
this.parent = parent;
}
}
我在我的项目中使用Maven构建工具,因此这是@JsonIgnore
注释的依赖项:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-lgpl</artifactId>
<version>1.9.13</version>
</dependency>
问题是,当我在这个实体上使用REST API请求时,我得到无限循环(错误500内部错误)所以我需要使用@JsonIgnore注释来避免这个循环并且它无法正常工作