Проблема сериализации картографа Джексона: - Неверные результаты, полученные в спящем режиме двунаправленного отношения - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть две сущности: - UserInformation и UserRole.Каждому пользователю назначена одна роль.Я создал объекты гибернации следующим образом: -
UserInformation

@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userId")
@Data
@EqualsAndHashCode(callSuper = false)
public class UserInformation extends BaseEntity implements Serializable {

    private static final long serialVersionUID = -6218273465809835575L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long userId;
    private String userName;
    private String firstName;
    private String lastName;
    private String email;

    @JsonIgnore
    private String password;

    private Boolean isActive;

    @JoinColumn(name = "userRoleId", referencedColumnName = "userRoleId")
    @ManyToOne
    private UserRole userRole;

    @OneToMany(mappedBy = "userInformation")
    private List<UserSecurityQueAns> userSecurityQueAnsList;

}

UserRole

@Entity
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "userRoleId")
@Data
@EqualsAndHashCode(callSuper = false)
public class UserRole extends BaseEntity implements Serializable {

    private static final long serialVersionUID = -5947632600078734240L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long userRoleId;

    private String userRole;

    @OneToMany(mappedBy = "userRole", fetch = FetchType.LAZY)
    private List<UserInformation> userDetailsList;

}

Я хочу получить всепользователи.Для этого я создал один API-интерфейс отдыха следующим образом: -

@GetMapping(path = "/findAll")
public @ResponseBody ResponseEntity<Page<UserInformationDto>> findAllUsers(
        @RequestBody(required = false) final UserInformationDto userInfoDto,
        final Pageable pageRequest) {
    final Page<UserInformation> userInfoPage = userService.findAll(userInfoDto, pageRequest);
    final UserControllerMapper mapper = new UserControllerMapper();
    final Page<UserInformationDto> contactDtoPage = userInfoPage.map(mapper::convertToUserDto);
    return new ResponseEntity<Page<UserInformationDto>>(contactDtoPage, HttpStatus.OK);
}

Ответ, который я получаю от этого API, состоит в том, что в нем используется только один пользователь вместо 3-х пользователей.также хочет получить пользователей из UserRole, поэтому требуется двунаправленная связь.Если я сделаю его однонаправленным, то он работает нормально, но с двунаправленным он не работает.Любое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...