2
최대 절전 모드로 봄 휴식 API를 개발하려고합니다. Google에서 검색 한 후 게으른로드에 대한 해결책을 찾지 못했습니다. 나머지 API를 호출 한 후봄 휴식 최대 절전 모드로 게으름로드
University.java
@Entity()
@Table(schema = "core", name = "university")
public class University extends BaseEntity {
private String uniName;
private String uniTelephon;
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(fetch = FetchType.LAZY, mappedBy = "university", cascade = CascadeType.ALL)
@JsonManagedReference
private List<Student> students;
//setter and getter
}
Student.java
@Entity
@Table(schema = "core",name = "student")
public class Student {
@Id
@GeneratedValue
private long id;
private String firstName;
private String lastName;
private String section;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "UNIVERSITY_ID",nullable = false)
@JsonBackReference
private University university;
// setter and getter
}
어떤 내 나머지 끝 지점
@GetMapping("/list")
public ResponseEntity list() throws Exception {
// I need to return just Universities But it return it eagerly with their students
return new ResponseEntity(this.universityService.findAll(), HttpStatus.OK);
}
: 나는 두 엔티티 아래와 같이가 그것은 모든 학생들과 함께 대학을 돌려줍니다.
잭슨에게 채워지지 않은 객체 또는 컬렉션을 직렬화하지 않도록 지시하는 방법이 있습니까?
입증 된 솔루션으로 도움을 줄 수 있습니까? 다음과 같은 의존성을 추가
HTTP 상태 500 - 내용을 쓸 수 없습니다. 지연 컬렉션을 초기화하지 못했습니다. a2.asena.cashModel.University.students, 프록시를 초기화 할 수 없습니다. (참조 체인을 통해 : java. util.ArrayList [0] -> a2.asena.cashModel.University [ "students"]); 중첩 예외는 com.fasterxml.jackson.databind.JsonMappingException입니다 : 지연 컬렉션을 지연 초기화하지 못했습니다 : a2.asena.cashModel.University.students, 프록시를 초기화 할 수 없습니다 - 세션 없음 (참조 체인을 통해 : java.util.ArrayList [ 0] -> a2.asena.cashModel.University [ "students"]) 위의 예외 솔루션에 대한 – Generic
이 재정의합니다. Appinitializer의 필터 @Override protected Filter [] getServletFilters() { return new Filter [] {new {HiddenHttpMethodFilter(), 새로운 MultipartFilter(), 새로운 OpenEntityManagerInViewFilter()}; – Generic
일부 기사가 적절한 해결책이 아니라고 말합니다 – Generic