2017-01-04 6 views
0

Сейчас я использую метод MULTISELECT из CriteriaQuery поставить некоторые значения из объекта Termine в сущности задачи, как это:JPA CriteriaQuery MultiSelect от нескольких лиц

CriteriaBuilder builder = getEm().getCriteriaBuilder(); 
     CriteriaQuery<Task> taskCriteria = builder.createQuery(Task.class); 
     Root<Termin> terminRoot = taskCriteria.from(Termin.class); 
     taskCriteria.multiselect(terminRoot.get("text"), terminRoot.get("empfaenger"), terminRoot.get("datVon")); 
     taskCriteria.where(builder.equal(terminRoot.get("empfaenger"), "000")); 
     List<Task> task = getEm().createQuery(taskCriteria).getResultList(); 
     return task; 

Это работает хорошо, но теперь я готов для сбора значений текста, empfaenger и datVon не только от объекта Termine, но и от сущности Aufgabe, так что у меня будет список задач, содержащий каждый Termin и Aufgabe, которые имеют один и тот же empfaenger.

Возможно ли это? Если да, то как?

Большое спасибо за вашу помощь!

+0

Такой же базовый класс? – jklee

+0

Нет, они не связаны. Но я мог бы создать некоторые временные классы, подобные им, и позволить одному наследовать от другого. Но как мне помочь? – user3218708

ответ

1

Я бы извлек оба класса из задачи.

@Entity(name="Task") 
@Inheritance(strategy = InheritanceType.JOINED) 
@NamedQuery(name="Task.findAll", query="SELECT t FROM Task t") 
public class Task { 

    @Id 
    Long id; 

    String text; 

    String empfaenger; 
} 

@Entity 
public class Termin extends Task{ 
    ... 
} 

@Entity 
public class Aufgabe extends Task{ 
    ... 
} 

И выбирать их с помощью именованного запроса

List<Task> resultList = entityManager.createNamedQuery("Task.findAll",Task.class).getResultList(); 

или критерии запроса с задачей, так как корень.

+0

Thats - хорошее решение! К сожалению, я не могу этого сделать. Раньше я думал, что можно создать несколько временных объектов, чтобы позволить одному наследовать от другого или обоих из суперкласса. Но это невозможно, и из-за ограничений проекта я не могу изменить структуру исходных объектов Aufgabe и Termin. Но, тем не менее, спасибо за вашу помощь !!! Я буду иметь ввиду! – user3218708