当前位置: 首页 > 知识库问答 >
问题:

JPARepository findAll()循环数据

穆宏胜
2023-03-14

我有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;

我创建了其余的 API,以通过使用 JPA存储库查找所有用户全部

@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);
      }

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

{“内容”:[{“id”: 1,“用户名”:“v 7001”,“密码”:“管理员”,“角色”:[{“id”: 1,“角色名称”:“ADMIN”}],“用户信息”:{“id”: 1,“全名”:“”,“名字”:“Jay ce”,“lastName”:“Sonar”,“地址”:“ad 1”,“dob”: null,“user”:{“id”: 1,“用户名”:“v 7001”,“密码”:“admin”,“角色”:[{“id”: 1,“角色名称”:“ADMIN”}],“用户信息”:{“id”: 1,“全名”:“”,“名字”:“Jay ce”,“lastName”:“Sonar”,“地址”:“ad 1”,“dob”: null,“user”:{“id”: 1,“用户名”:“v 7001”"全名":"","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"用户名":"v 7001","密码":"admin","角色":[{"id": 1,"角色名":"ADMIN"}],"用户信息":{"id": 1,"全名":"","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"username":"v 7001","密码":"admin","角色":[{"id": 1,"角色名":"ADMIN"}],"user Info":{"id": 1,"全名":"","名字":"Jay ce","lastName"","角色":[{"id": 1,"角色名称":"ADMIN"}],"用户信息":{"id": 1,"全名":","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"username":"v 7001","密码":"admin","角色":[{"id": 1,"角色名称":"ADMIN"}],"用户信息":{"id": 1,"全名":""","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"username":"v 7001","密码":"admin","角色":[{"id": 1,"角色名称":"ADMIN“ad 1”、“dob”: null、“user”:{“id”: 1、“username”:“v 7001”、“密码”:“admin”、“角色”:[{“id”: 1、“角色名称”:“ADMIN”}]、“用户信息”:{“id”: 1、“全名”:“”、“名字”:“Jay ce”、“lastName”:“Sonar”、“地址”:“ad 1”、“dob”: null、“user”:{“id”: 1、“用户名”:“v 7001”、“密码”:“admin”、“角色”:[{“id”: 1、“角色名称”:“ADMIN”}]、“用户信息”:{“id”: 1、“全名”:“”、“名字”:“Jay ce”、“lastName”:“Sonar”、“地址”:“ad 1”、“dob”: null、“用户”:{“id”: 1:{"id": 1,"全名":"","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"用户名":"v 7001","密码":"admin","角色":[{"id": 1,"角色名":"ADMIN"}],"用户信息":{"id": 1,"全名":""","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"username":"v 7001","密码":"admin","角色":[{"id": 1,"角色名":"ADMIN"}],"用户信息":{"id": 1,"全名":"","名字":"Jay","密码":"admin","角色":[{"id": 1,"角色名称":"ADMIN"}],"用户信息":{"id": 1,"全名":"","第一名":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"用户名":"v 7001","密码":"admin","角色":[{"id": 1,"角色名称":"ADMIN"}],"用户信息":{"id": 1,"全名":""","名字":"Jay ce","lastName":"Sonar","地址":"ad 1","dob": null,"user":{"id": 1,"用户名":"v 7001","密码":"admin","角色":[{"id": 1,“声纳”、“地址”:“ad 1”、“dob”:null、“user”:

请给我建议

共有1个答案

邓俊英
2023-03-14

该错误是由于用户角色之间的双向关系造成的。

User实体中的角色上使用@JsonIgnore

 类似资料:
  • 假设我有一个大小为[10]的数组,当该数组被填满时,我想实现一个FIFO结构,而不是它只是填满了,因此无法向数组中添加新的东西,并抛出旧的东西。 例如,如果我有一个包含汽车制造商的字符串数组,当我的数组中有10个制造商时,我希望删除最旧的条目,添加最新的条目,但要考虑kepping FIFO。我如何在这样的方法中实现它:

  • 我下面有这个功能,我在某处做错了什么。 要运行,从程序的主要部分调用函数,如下所示: 代码底部的返回False与如果product为None有关,这是在另一个函数中编写了一些代码之后需要的,但在这个函数中必须执行。 如果用户输入的数量是一个数字,所有工作正常。如果是其他任何东西,则打印值错误,您可以输入另一个输入。如果你把另一个字母etc放进去,它就会重复一遍,如果你把一个数字放进去,它就会接受它

  • 此方法重复读取命令并执行它们,直到游戏结束。完成的变量为true时,表示玩家/用户点击了退出并想要结束游戏——从而退出循环并执行到方法结束。 但我观察到循环有一种奇怪的行为。它循环得非常好(省略以下行时显示stopWatch.getTime()的连续计数: 但是当我把它们放回去时,它会停止显示秒表的连续递增时间,因为它会朝着时间限制增加(在这一点上,它应该停止)。即使玩家没有输入任何命令或输入。

  • 问题内容: 在下面的示例代码中,是否真的需要counter = 0,还是有更好,更多的Python方法来访问循环计数器?我看到了一些与循环计数器有关的PEP,但它们要么被延迟要么被拒绝(PEP 212 和PEP 281)。 这是我的问题的简化示例。在我的实际应用程序中,这是通过图形完成的,整个菜单必须每帧重新绘制一次。但这以易于复制的简单文本方式进行了演示。 也许我还应该补充一点,我正在使用Pyt

  • 您好,我对jquery没有什么问题。首先,我有: 大众BORA 1.9TDI 1990 1995 奥迪A3 2.0TFSI 2006 2008 但我想实现: VW BORA 1.9TDI 1990 VW BORA 1.9TDI 1991 VW BORA 1.9TDI 1992 VW BORA 1.9TDI 1993 VW BORA 1.9TDI 1994 VW BORA 1.9TDI 1995 A

  • 问题内容: 在遍历列表的Python循环中,我们可以编写: 并巧妙地遍历列表中的所有元素。有没有办法知道循环中到目前为止我循环了多少次?例如,我要列出一个清单,在处理完10个元素之后,我想对它们进行处理。 我考虑过的替代方案可能是: 要么: 是否有更好的方法(就像)来获得到目前为止的迭代次数? 问题答案: pythonic的方法是使用: