有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java比较相同对象的两个表并选择不同的表

我有一个名为EmployeeTaskJoin by Employee和Task的联合表

关系:员工(一个)--(多个)员工任务(多个)--(一个)任务

现在我有了一个员工,我使用他的员工ID查找分配给该员工的所有员工任务,然后将每个员工任务对应的所有任务查找到一个表中

接下来,我将数据库中的所有任务放入另一个表中

最后,我想找出尚未分配给该员工的任务列表

我使用的工具是hibernate标准,语言是JAVA

有人能帮忙吗

---编辑---

这段代码将为给定的员工提供所有任务

ArrayList<EmployeeTask> employeeTasks = EmployeeTaskDAO.getEmployeeTasksByEmployee(employee);
JSONArray tasksArr = new JSONArray();
for(EmployeeTask et : employeeTasks){
    Task t = TaskDAO.getTaskById(et.getTask().getTaskId());
    tasksArr.add(t.toJson());
}

getEmployeeTasksByEmployee

public static ArrayList<EmployeeTask> getEmployeeTasksByEmployee(Employee employee){
    ArrayList<EmployeeTask> employeeTasks = new ArrayList<EmployeeTask>();
    if(employee != null){
        DetachedCriteria detachedCriteria = DetachedCriteria.forClass(EmployeeTask.class);
        detachedCriteria.add(Restrictions.eq(Key.EMPLOYEE, employee));
        List<Object> list = HibernateUtil.detachedCriteriaReturnList(detachedCriteria);
        for(Object o : list){
            employeeTasks.add((EmployeeTask) o);
        }
    }
    return employeeTasks;
}

获取所有任务的方法与上面的代码示例非常相似

现在,在寻找尚未分配给该员工的其他任务时,我真的迷失了方向。我该怎么办?有什么帮助吗?谢谢


共 (2) 个答案

  1. # 1 楼答案

    而不是在两个表中搜索差异。我决定在javascript中存储两个不同的对象数组,并比较这两个数组以找出不常见的数组

  2. # 2 楼答案

    没有模型很难说什么,但您可以尝试使用alias连接三个表。有javadoc和一些examples可用

    要获得未分配的任务,可以添加NotEqualrestriction@VytautasAlkimavičius