我有使用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