Я новичок в Spring, Hibernate, JPA и его API.Я создал @RestController
, а связанный метод выглядит так:
@GetMapping("/user")
public ResponseEntity getListItemById(){
UserTypeEntity entity = userTypeRepository.findFirstByUserTypeId(1);
return ResponseEntity.ok().body(entity);
}
UserTypeEntity
имеет 2 ленивых геттера,
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", referencedColumnName = "user_id", nullable = false)
public UserEntity getUserByUserId() {
return userByUserId;
}
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_type_list_item_id", referencedColumnName = "list_item_id", nullable = false)
public ListItemEntity getListItemByUserTypeListItemId() {
return listItemByUserTypeListItemId;
}
Все свойства ListItemEntity
и UserEntity
являются null
до тех пор, пока я не использую JOIN FETCH
запрос.Я проверил и подтвердил это.(Это может быть знакомо любому опытному).
Вот пример ответа, который я использую, чтобы получить,
(Извините, он даже не может быть отформатирован из-за большого отклика данных, хотя у меня в каждой таблице по одной строке. Это бесконечная рекурсия (StackOverflowError))
Все загружается в конце концов.Я не мог определить, что, черт возьми, происходит не так здесь.Почему эти ленивые нулевые свойства загружены, и я получил этот странный и расплывчатый ответ?Я потратил на это целый день, помогите, пожалуйста, выбраться из этого.