ユーザーエンティティ
class User{
int id;
@OneToMany
Set<Role> roles;
}
:ユーザークラスには、私が書いていない他の多くの詳細があります。
DTO
class DTO{
int id;
Set<Role> roles;
DTO(int id, Set<Role> roles){
this.id = id;
this.roles= roles;
}
}
クエリ
hibernateTemplate.find("select new DTO(u.id, r ) from "+User.class.getName()+ " u inner join u.roles as r");
問題: 有効なコンストラクターが見つかりませんでした。
以下のコンストラクターを変更すると、上記のクエリが機能します。
DTO(int id, Role role){
this.id = id;
}
問題: しかし、同じユーザーに対して複数の DTO レコードが与えられ、そのユーザーが持っているロールの数と同じになります。助けてください。