Циклы в сущностях в спящем режиме - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть две сущности, и когда я хочу получить grade.getSubcompetence().Ошибка происходит, когда я сохраняю сущность, потому что данные некомпетентности недействительны.Когда я отлаживаю, я вижу ошибку:

'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;
}

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Добавить добавить @EqualsAndHashCode(callSuper=false) и JsonIgnore как показано ниже

  @OneToMany(
            mappedBy = "subcompetence",
            fetch = FetchType.LAZY,
            cascade = CascadeType.ALL)
@JsonIgnore
private List<Grade> grades;
0 голосов
/ 11 декабря 2018

попробуйте добавить @EqualsAndHashCode(exclude="grades") в свой класс подкомпетентности

...