Как создать репозиторий данных Spring с предложением ON - PullRequest
0 голосов
/ 18 октября 2019

Предположим, у нас есть два класса A и B: класс A:

public class A {private Long id;}

класс B:

public class B {private Long id; private String name ; private Boolean isDeleted = false; }

Есть ли способ получить результаты запроса Join с некоторыми другими условиямикроме условия ON я попробовал это, но я не работаю, компилятор не распознает предложение ON org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token:

 @Query( "SELECT new com.demo.DTO.resultsDTO(a.id) FROM A ate , B a  ON a.id = b.id WHERE b.isDeleted = false AND b.name = ?1  ")

Я также попытался включить a.id = b.id впредложение WHERE, но оно не возвращает результатов. Пожалуйста помоги.

1 Ответ

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

Ваш запрос отключен, и он смешивает синтаксис неявного соединения старой школы с современным (предпочтительным) синтаксисом соединения. Вот версия, которую вы должны использовать:

SELECT new com.demo.DTO.resultsDTO(a.id)
FROM A a
INNER JOIN B b
    ON a.id = b.id
WHERE
    b.isDeleted = false AND
    b.name = ?1;

Ваш обновленный код Java:

@Query("SELECT new com.demo.DTO.resultsDTO(a.id) FROM A a INNER JOIN B b ON a.id = b.id WHERE b.isDeleted = false AND b.name = ?1")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...