我遇到了JPA的问题,我需要返回一个用户列表,但我总是得到用户ID来自
这个工作正常并返回您关注的用户:
@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。
如你所见:
这是用户表
跟随者表由JPA生成,带有一个arraylist
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<User> followers = new ArrayList();
现在你已经掌握了一些背景信息。
作为用户2,我可以看到我关注的是user3和用户4.但如果我是用户3,我看不到user2跟随我(这总是以某种方式返回user3)
如果您需要更多信息,请随时提出
答案 0 :(得分:1)
你为什么不“从用户u中选择你的u.id =:id”并在你的java代码中通过u.getFollowers()访问关注者?如果您的实体具有关系,则不明确需要连接。