Можно ли изменить имя столбца при использовании метода CrudRepository findById (Long Id)? - PullRequest
1 голос
/ 09 мая 2020

Я использую JPA, Spring boot для примера приложения и расширяю CrudRepository. Я делаю вызов REST и передаю идентификатор для поиска всех строк с этим идентификатором.

Внутренне я вызываю метод repository.findById (Long Id) для поиска. Однако этот метод всегда выполняет поиск по столбцу «Первичный ключ». Можно ли использовать этот или любой другой метод для поиска в столбце «Внешний ключ» той же таблицы?

В моей таблице есть столбцы ниже

Name      DataType 
--------------------------------------
Id        BIGIN(8)      PK, AI
comment   VARCHAR(100)  Not Null
userId    BIGINT(8)     FK  Not Null 

Я хочу искать по userId, но findById принимает Id по умолчанию

1 Ответ

1 голос
/ 09 мая 2020

Вам необходимо добавить новый метод в репозиторий.

Если у вас нет никакого отношения в классе сущности, используйте собственный запрос (при условии, что Comment является вашей сущностью)

@Query(value = "SELECT * FROM Comment WHERE userId = ?1", nativeQuery = true)
List<Comment> findByUserId(long userId);

И если у вас есть отношение в классе сущности, используйте это.

List<Comment> findByUserId(long userId);
...