1
の限られた数のエンティティのコレクションを選択は、多くの多くの - 私は、多くの関係に多くにある2つのenitityクラスを持って決定したフィールドなしとの結果
@Entity
public class User implements Serializable {
...
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "members")
private Set<Group> groups = new HashSet<>();
}
と
@Entity
public class Group implements Serializable {
...
@JoinTable(name = "user_groups",
joinColumns = {@JoinColumn(name = "group_id")},
inverseJoinColumns = {@JoinColumn(name = "user_id")})
private Set<User> members = new HashSet<>();
}
特定のグループをリクエストすると、私は次のようになります:
{
"id": 12,
"adminId": 12345,
"name": "name",
"category": "cat",
"city": "city",
"members": [
{
"id": 1,
"firstName": "SomeName",
"birthday": 802476000000,
"city": "SomeCity",
"country": "SomeCountry",
"age": 21,
"groups": [
{
"id": 1,
"adminId": 123,
"name": "Some group name",
"category": "some category",
"city": "some city"
}
],
"picturePath": some path
}
]
} idで特定のグループを取得したいときは、メンバーフィールドにグループフィールドを持たないユーザーとデータベースの上位100行しか持たないとします。 はあなたが理解ホープ:ユーザーが多くのグループやグループに属している私はこのような何かを取得したい多くのユーザー
を持っている:私の心に来る何
{
"id": 12,
"adminId": 12345,
"name": "name",
"category": "cat",
"city": "city",
"members": [
{
"id": 1,
"firstName": "SomeName",
"birthday": 802476000000,
"city": "SomeCity",
"country": "SomeCountry",
"age": 21,
"picturePath": some path
}
]
はこれ(結合表のクラスを作成し、エンティティのことですuser_id、group_idという列があります)と、与えられたgroup_idのuser_idsの結果を得るループを作成します。興味のあるフィールドを持つユーザーを取得します。
タプルクエリを使用する必要がありますか?私の問題であなたの時間を過ごすための おかげ