Запрос нескольких взаимосвязанных сущностей с использованием критерия запроса в весенней загрузке и jpa - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть требование запросить несколько таблиц с использованием критериев jpa и весенней загрузки.

У меня есть четыре объекта.

class Employee {
  int id;
  Laptop laptopId;
  Workstation wsId;
  int deptId;
}

class Workstation{
  int id;
  int systemId;
  int cubicId;
}

class Laptop{
  int id;
  Brand brandId;
}

class Brand{
  int id;
  String brandName;
}

Я хочу запросить как-

Select * From Employee,
  join Employee, Laptop on laptopId=id
  join Employee, Workstation on wsId=id
  join Laptop, Brand on brandId=id
    Where brandName='HP' & systemId='BLR04' & deptId='DEV' & cubidId='A009';

Я пытался:

SearchCriteria criteria;
@Override
private Predicatec toPredicate(Root<Employee> root,CriteriaQuery query,CriteriaBuilder builder){
   Root<Employee> root =  query.from(Employee.class);
   Join<Employee,Laptop> j1 = root.join(Employee_.laptopId);
   Join<Laptop,Brand> j2 = j1.join(Laptop_.brandId);
   Join<Employee,Workstation> j3 = root.join(Employee_.wsId);
   List<Predicates> list = new ArrayList();
   list.add(j2.get(criteria.getKey),criteria.getValue);
   list.add(j3.get(certeria.getKey),criteria.getValue);

   return builder.equal(list.toArray(new Predicate[]);
}

Но это не работает, я взял ссылку от: https://community.oracle.com/thread/2488174, но, к сожалению, это не работает.Пожалуйста, помогите мне по этим вопросам.заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...