1
我正在學習Criteria API,我遇到了一個問題來創建我的查詢。 這裏是我的結構:標準查詢2,通過3個實體級別查詢
的管理員擁有組的列表,A組有管理員列表(所以多對多關係)
A組有公司的名單,A公司擁有一批(所以一對多)
要找到一個管理員的所有組我創造了這個請求:
@Override
public List<Group> getAllGroupsManagedByAdmin(Admin admin)
{
final CriteriaBuilder cb = entityManager.getCriteriaBuilder();
final CriteriaQuery<Group> query = cb.createQuery(Group.class);
final Root<Admin> admins = query.from(Admin.class);
query.where(cb.equal(admins.get(Admin_.id), admin.getId()))
.select(admins.join(Admin_.groups));
return this.entityManager.createQuery(query).getResultList();
}
現在我試圖找到一個組的所有公司,但可以肯定這組由參數提供的管理員負責管理,該方法的定義是:
public List<Company> getCompaniesByGroupIdManagedByAdmin(String groupId, Admin admin)
但是我所有的草稿在這一刻都失敗了。有人能給我一些幫助嗎? 謝謝!