Не удалось получить набор результатов, как ожидалось, с помощью весеннего jpa-запроса с указанием в предложении - PullRequest
1 голос
/ 13 октября 2019

У меня есть весенний jpa-запрос, который должен извлечь две записи из таблицы. Здесь я не смог получить две записи при использовании предложения OR.

@Query("select i from Table i where i.id.company=?1 AND i.id.employee=?2 OR i.id.employee=?3")
    List<Table> findByCompanyAndEmployee(@Param("company")String company,@Param("employee") String employee, @Param("employee1") String employee1);

Позже понял, что я не должен использовать предложение OR, поэтому проверил с предложением IN, но я все еще могу получить одну запись.f из запроса ниже:

@Query("select i from Table i where i.id.company=?1 AND i.id.employee IN ?2")
    List<Table> findByCompanyAndEmployee(@Param("company")String company,@Param("employees") List<String> employees);

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

Это набор результатов, в котором я вызываю метод:

  List<Table> empList= TableRepo.findByCompanyAndEmployee(SomeCompany, Arrays.asList(Employee1, Employee2));

Это должно вернуть что-то вроде:

COMPANY     Employee    Duties    EmployeeId
SomeCompany Employee1   1,2,3,4    12345
SomeCompany Employee2   1,3,8,9    23281

Сущность таблицы:

@EmbeddedId
    private ID id;
    @Column(name="Employee")
    private String Employee;
    @Column(name ="Duties")
    private String Duties;
    @Column(name="EmployeeId")
    private String EmployeeId;

И

@Embeddable

@Column(name = "COMPANY")
private String company;

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Попробуйте это:

@Query("select i from Table i where i.id.company=:company AND i.id.employee IN (:employee)")
List<Table> findByCompanyAndEmployee(@Param("company")String company,@Param("employees") List<String> employees);
0 голосов
/ 13 октября 2019

Вы пробовали это?

      select i from Table i where 
     i.id.company=?1 AND i.id.employee
      IN (? 2, ?3) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...