У меня есть простое отношение родитель-ребенок (один ко многим).И я ищу родителей в двух конечных точках.Один, чтобы получить список родителей, и один, чтобы получить одного родителя.В списке я не хочу сериализовать список детей для каждого родителя.Я хочу показывать список детей только тогда, когда я получаю одного из родителей.
Я работаю с весенней загрузкой и CrudRepository.Я попробовал
spring.jpa.open-in-view=false
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
, а также fetch = FetchType.LAZY
, и в конце я написал собственный HQL с ключевым словом FETCH.
Родительская модель
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
private List<Child> children;
Дочерняя модель
@Column(name = "parent_id")
@JsonIgnore
private Long parentId;
Родительский репозиторий
public interface ParentRepository extends CrudRepository<Parent, Long>
Родительская служба
List<Parent> findAll() {
return StreamSupport
.stream(repository.findAll().spliterator(), false)
.collect(Collectors.toList());
}
Как я уже сказал, я хочу иногда сериализовать список детей в этом отношении, а в некоторых случаях нет.