Я могу добавить jsonIgnore в Columns.java (дочерний), чтобы остановить бесконечный цикл, но когда я пытаюсь добавить Ignore на родительскую сторону, я получаю
HTTP Status 500 - Couldне записывать JSON: не найден сериализатор для класса org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.Это действительно сбивает с толку, что родительское поле доступно в бесконечном цикле, но после того, как я добавил JsonIgnore к родительскому, оно больше не будет работать.
родительский объект:
@Entity(name = "Project")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long projId;
private String projName;
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name = "Project_Resource", joinColumns = {
@JoinColumn(name = "projId", referencedColumnName = "projId") }, inverseJoinColumns = {
@JoinColumn(name = "resId", referencedColumnName = "resId") })
private Set<Resource> resources = new HashSet<Resource>(0);
@OneToMany(fetch = FetchType.EAGER, mappedBy="project", cascade = CascadeType.ALL)
@JsonIgnore
private Set<Columns> columns;
public long getProjId() {
return projId;
}
public void setProjId(long projId) {
this.projId = projId;
}
public String getProjName() {
return projName;
}
public void setProjName(String projName) {
this.projName = projName;
}
public Set<Resource> getResources() {
return resources;
}
public void setResources(Set<Resource> resources) {
this.resources = resources;
}
public void setColumns(Set<Columns> columns) {
this.columns = columns;
}
public Set<Columns> getColumns(){
return this.columns;
}
}
child:
@Entity(name = "Columns")
public class Columns {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long colId;
private String colName;
private String type;
@ManyToOne(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name = "projId",nullable = false)
private Project project;
@OneToMany(mappedBy="columns")
private Set<Block> blocks;
@OneToOne(mappedBy="columns")
private Formula formula;
public Long getColId() {
return colId;
}
public void setColId(Long colId) {
this.colId = colId;
}
public String getColName() {
return colName;
}
public void setColName(String colName) {
this.colName = colName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}
}