我正在尝试使用标准 API 编写一个复杂的查询。我可以在这方面使用一些帮助。
我有 3 个类,资产、资产组件和任务。Task 类与 AssetComponent 具有 1 对 M 的关系,AssetComponent 与 Asset 具有 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();
}
deataced 查询应返回所有已分配资产的任务,并且是给定项目的一部分。现在我需要看看所有这些任务的独特资产是什么。
谢谢你帮我解决这个问题。
干杯