我有使用JPA的问题,我需要返回用户的列表,但我总是得到用户的ID是从JPA命名查询加入
这其中是否正常工作,并返回你的用户以下:
@NamedQuery(name = "User.findByFollowing",
query = "select User from User user join user.followers f where f.id=:id"),
此查询总是返回id参数的用户(PARAM = 1个返回user1的,而不是你之后是用户)
@NamedQuery(name = "User.findFollower",
query = "select User, f from User user join user.followers f where user.id=:id")
表看起来是这样的,两列是用户表的ID。
正如你可以看到:
- USER4了2名追随者
- 用户3有1个关注
- 用户2是继2个用户
- 用户1以下1个用户
Thi s是由JPA产生了ArrayList的
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<User> followers = new ArrayList();
现在你有一些背景资料,我会去点
跟随表用户表。
当用户2,我可以看到我下面用户3和用户4.但是,如果我是用户3我不能看到用户2跟着我(这总是返回用户3以某种方式)
如果您需要更多的信息随时问
为什么不做“从用户u选择你的u.id =:id”并通过你的java代码中的u.getFollowers()访问folowers?如果你的实体有这种关系,你不需要明确的加入。 – Desorder
不错的一个!我正在让自己更难以应付。我这样做我做了干净的代码。现在已经很晚了...睡了一个晚上的好时光,有些想着这个 – Isene112
我会把它作为答案,所以你可以把它标记为正确的是帮助你。 :) – Desorder