Моя проблема состоит в том, как извлечь рекурсивную таблицу в поле сущности без получения «Исключение произошло в целевой виртуальной машине: java.lang.StackOverflowError»
У меня есть класс Activity, который реализует рекурсивную таблицу:
@Entity
@Table(name = "activities")
public class Activity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "activity_id")
private Long id;
@NotBlank
@Column(name = "name")
private String name;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "parent_id")
private Activity parent;
@OneToMany(mappedBy="parent", cascade = CascadeType.ALL)
private Set<Activity> childs;
@Override
public String toString() {
return "";
}
}
и класс разрешений, который имеет отношения многие ко многим:
@Entity
@Table(name = "permissions")
public class Permission {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "permission_id")
private Long id;
@NotBlank
@Column(name = "name")
private String name;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_at")
private Date createdAt;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_at")
private Date updatedAt;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "permission_activity", joinColumns = @JoinColumn(name = "permission_id"), inverseJoinColumns = @JoinColumn(name = "activity_id"))
private Set<Activity> activities;
}
Я использую абстракцию JpaRepository для загрузки данных базы данных, когда пытаюсь получить доступ к действиямподал это идет к ошибке OverFlow. Это еще один способ напрямую задать именованный запрос, когда дело доходит до извлечения поля действий?