JAVA Spring Boot - existByColumne1AndNotColumn2 Запрос к репозиторию - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю с Java Spring Boot, где я хочу создать запрос по умолчанию, чтобы определить, существует ли пользователь с данным номером мобильного телефона, а не с данным идентификатором пользователя. Необработанный запрос:

SELECT * FROM `user` WHERE mobile = "9898989898" AND user_id != 123

Я обнаружил, что для проверки с одним столбцом, существуют ли данные в этом столбце или нет, мы можем сделать что-то подобное в классе репозитория

Boolean ExistWithMobile(String mobile)

Это вернет true или false, если найдена строка с данным номером мобильного телефона.

Точно так же, как я хочу запрос, аналогичный приведенному выше, но это не работает

Boolean existsByMobileAndNotUserId(String mobile, Long userId);

Это должно вернуть истина или ложь, доступен ли этот номер телефона с другим ИД пользователя

Я знаю, как я могу работать с необработанными запросами, поскольку я уже упоминал об этом при запуске вопроса, но я хочу что-то вроде этого прямого способа запроса, без необработанного запроса.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 24 апреля 2020

если вы не хотите использовать собственный sql запрос, вы можете вместо этого использовать HQL.

в вашем случае:

@Query("from User u Where u.mobile = :mob and u.id != :id")
Optional<User> findUserByMobile(@Param("mob") String mobile, @Param("id") long id)

при вызове:

Optional<User> user = repo.findUserByMobile(mobile, uid);
if( user.isPresent() ) { ... }

здесь есть c данных @Query весной: Spring Data JPA

Удачи

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