2015-07-29 3 views
0

У меня есть совместная таблица с именем EmployeeTask join Employee и Task.Сравните две таблицы из тех же объектов и выберите разные

Отношения: Employee (ONE) ---- (MANY) EmployeeTask (MANY) ---- (ONE) Задача.

Так что теперь у меня есть сотрудник, и я использую его идентификатор сотрудника найти все employeeTask этот сотрудник был назначен, а затем найти все Task соответствуют каждому employeeTask в стол.

Далее, я получаю все Задача я есть в базе данных в другую таблицу.

И наконец, Я хочу найти список задач, которые не были назначены этому сотруднику.

Инструменты, которые я использую это критерии Hibernate и язык JAVA

Может кто-нибудь помочь, пожалуйста.

--- EDIT ---

Этот фрагмент кода даст мне все Task У меня есть для данного сотрудника:

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; 
} 

Способ getti Все задачи полностью аналогичны приведенному выше образцу кода.

Теперь я буквально потерян, чтобы найти остальные задачи, которые еще не были назначены этому сотруднику. Как я подойду? Любая помощь? Благодаря!

+1

Не могли бы вы показать код, который вы пробовали? – Amogh

+0

хорошо, дайте мне второй – Ray

+0

Простенько _не равносильно_ помочь? [ne info here] (http://stackoverflow.com/questions/4774631/hibernate-not-equal-example-criteria) –

ответ

0

Вместо поиска различий в двух таблицах. Я решил сохранить два разных массива объектов в javascript и сравнить два массива, чтобы вытащить необычные.

0

Трудно сказать что-то без модели, но вы можете попытаться использовать псевдоним, чтобы присоединиться к вашим трем таблицам. Есть javadoc и некоторые examples доступны.

Для получения непризнанных заданий вы можете добавить NotEqual ограничение @ VytautasAlkimavičius упомянуто.

Смежные вопросы