我有两个实体,当我想获取grade.getSubcompetence()
时。保存实体时发生错误,因为子权限数据为null。调试时出现错误:
'java.lang.StackOverflowError'异常。无法评估_ $$ _ jvstea5_f.toString()
@Entity
@Data
@NoArgsConstructor
@ToString(exclude = {"subcompetence"})
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name = "GRADE")
public class Grade {
@JsonBackReference
@ManyToOne(
fetch = FetchType.LAZY,
optional = false)
@JoinColumn(name = "SUBCOMPETENCE_ID", nullable = false)
private Subcompetence subcompetence;
@JsonBackReference
@ManyToOne(
fetch = FetchType.LAZY,
optional = false)
@JoinColumn(name = "LEVEL_ID", nullable = false)
private Level level;
}
@Entity
@Data
@NoArgsConstructor
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name = "SUBCOMPETENCE")
public class Subcompetence {
@JsonManagedReference
@OneToMany(
mappedBy = "subcompetence",
fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
private List<Grade> grades;
}
答案 0 :(得分:1)
尝试在“子能力”课程中添加@EqualsAndHashCode(exclude="grades")
答案 1 :(得分:0)
像下面一样添加添加@EqualsAndHashCode(callSuper=false)
和JsonIgnore
@OneToMany(
mappedBy = "subcompetence",
fetch = FetchType.LAZY,
cascade = CascadeType.ALL)
@JsonIgnore
private List<Grade> grades;