【问题标题】:JPARepository findAll() loop dataJPARepository findAll() 循环数据
【发布时间】:2017-11-04 14:22:21
【问题描述】:

我有 3 个实体:

SLUSER_INFO(SLUSER_INFO_ID, FULLNAME, FIRSTNAME, LASTNAME, ADDRESS, DOB)
SLUSER(SLUSER_ID, PASSWORD, USERNAME, SLUSER_INFO_ID)
SLROLE(SLROLE_ID, ROLENAME, SLUSER_ID)

在用户实体中:

 @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
 @JsonView(SlUserView.Full.class)
 private List<SlRole> roles;

 @OneToOne(cascade = CascadeType.ALL)
 @JoinColumn(name = "SLUSER_INFO_ID", referencedColumnName = "SLUSER_INFO_ID")
 @JsonView(SlUserView.Full.class)
 private SlUserInfo  userInfo;

在角色实体中:

@ManyToOne
@JoinColumn(name = "SLUSER_ID", referencedColumnName = "SLUSER_ID")
private SlUser user;

和 User_info 实体

@OneToOne(mappedBy = "userInfo")
private SlUser user;

我使用 JPARepository findAll 创建其余 api 以获取所有用户

@Repository
public interface SlUserRepository extends JpaRepository<SlUser, Long> {

}

控制器

  public ResponseEntity<Page<SlUser>> findAll(Pageable pageable) {
        Page<SlUser> pageResult = usersRepository.findAll(pageable);
        return new ResponseEntity<Page<SlUser>>(pageResult, HttpStatus.OK);
      }

尝试运行rest api,结果是重复数据。

{"content":[{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN "}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob": null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}] ,"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"用户":{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo ":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user": {"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{ "id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id ":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id" :1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1 "用户名":"v7001","密码d":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName" :"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password": "admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce ","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin" ,"roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce"," lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles ":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName": "Sonar","address":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[ {"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar" ,"地址":"ad1","dob":null,"user":{"id":1,"username":"v7001","password":"admin","roles":[{"id ":1,"角色名":"管理员"}]," userInfo":{"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user" :{"id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo": {"id":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{" id":1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id ":1,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id": 1,"username":"v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1 ,"fullName":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"用户名":"v7001","密码":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName ":"","firstName":"Jayce","lastName":"Sonar","address":"ad1","dob":null,"user":{"id":1,"username": "v7001","password":"admin","roles":[{"id":1,"roleName":"ADMIN"}],"userInfo":{"id":1,"fullName":" ","firstName":"杰斯","lastName":"Sonar","address":"ad1","dob":null,"user":

请给我建议

【问题讨论】:

标签: spring spring-boot spring-data-jpa jpql


【解决方案1】:

错误是因为UserRoles 之间的双向关系。

User 实体中的roles 上使用@JsonIgnore

【讨论】:

    猜你喜欢
    • 2015-10-31
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多