次の 2 つのエンティティ (1:N) があります。
@Entity
public class Job {
@ManyToOne
private User user
}
と
@Entity
public class User {
@OneToMany
private Collection<Job> jobs;
}
今、私はjpqlで名前付きクエリを書きたいと思っています。これは、最も多くのジョブを持つユーザーを取得します。
Job Entityに対する次のクエリを使用すると、各ユーザーのジョブ数を取得できます...しかし、どういうわけか、すべてのジョブの最大数を持つユーザーのジョブ数と比較する必要があります...
@NamedQuery(query="SELECT j.user, COUNT(j) FROM Job j GROUP BY j.user" )
私の 2 番目のアイデアは、User エンティティに名前付きクエリを記述することです。
@NamedQuery( query="SELECT u.username FROM User u WHERE SIZE(u.jobs) = MAX ??????")
ここでも、最大割り当てジョブ数を取得する方法がわかりません....
誰かが私を助けることができますか?