У меня есть простой RestController, который возвращает пользовательский объект после выполнения вызовов в БД путем расширения интерфейса org.springframework.data.repository.PagingAndSortingRepository.
Проблема теперь заключается в том, когда я делаю этот вызов для UserObject адреса возвращают Persistentbag Error
Произошла исключительная ситуация ошибки: com.sun.jdi.InvocationException произошел метод вызова ..
Отрывок Ошибка
@Entity(name = "users")
public class UserEntity implements Serializable {
private static final long serialVersionUID = -2675537776836756234L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "userDetails", cascade = CascadeType.ALL)
private List<AddressEntity> address = new ArrayList<>();
//Constructors and Getters and Setters and toString()
}
@Entity(name="addresses")
public class AddressEntity implements Serializable {
private static final long serialVersionUID = 4209374923046988553L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne
@JoinColumn(name="users_id")
private UserEntity userDetails;
//Constructors and Getters and Setters and toString()
}
И контроллер
@RequestMapping(value = "/pagedList", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE,
MediaType.APPLICATION_XML_VALUE })
public List<UserRest> getUsers(@RequestParam(value = "page", defaultValue = "0") int page,
@RequestParam(value = "limit", defaultValue = "25") int limit) {
List<UserRest> returnvalue = new ArrayList<>();
List<UserDTO> userDTO = userService.getUsers(page, limit);
for (UserDTO source : userDTO) {
UserRest target = modelMapper.map(source, UserRest.class);
target.setDate(source.getCreatedAt());
returnvalue.add(target);
}
return returnvalue;
}
Класс обслуживания пользователей:
public List<UserDTO> getUsers(int page, int limit) {
List<UserDTO> returnvalue = new ArrayList<>();
if (page > 0)
page -= 1;
Pageable pageableRequest = PageRequest.of(page, limit);
Page<UserEntity> usersPage = userRepo.findAll(pageableRequest);//Returns Nothing for addresses at this point
List<UserEntity> users = usersPage.getContent();
for (UserEntity source : users) {
returnvalue.add(modelMapper.map(source, UserDTO.class));
}
return returnvalue;
}
Спасибо