我试图用标准 API 来写一个复杂的查询。 我需要一些帮助。
我有3个类别,资产、资产元件和任务。任务类别与资产元件有1到M关系,资产元件与资产有1到M关系。我需要找到所有与资产有关的任务(任务有一个组成部分,组成部分知道与之相关的资产)的资产(应该是独特的清单)。
这是我至今为止拥有的
public List<Asset> retrieveTask(Project project, boolean assigned) {
DetachedCriteria subquery = DetachedCriteria.forClass(Task.class);
subquery.add(Restrictions.eq("project", project));
if (assigned) {
subquery.add(Restrictions.isNotNull("assignedTo"));
} else {
subquery.add(Restrictions.isNull("assignedTo"));
}
subquery = subquery.createCriteria("component");
subquery.add(Restrictions.isNotNull("asset"));
Criteria criteria = super.createCriteria();
criteria.add(Subqueries.in("id", subquery));
return criteria.list();
}
解密查询应该返回所有被分配到资产并且是赠予项目一部分的任务。 现在我需要看看所有这些任务的独特资产是什么。
谢谢你帮我这个忙
干杯 干杯