Найти по id = 1 пружинные данные jpa - PullRequest
0 голосов
/ 24 октября 2019

У меня есть компонент таблицы и компонент сущности. Я хочу выбрать id = 1 запись из запроса jpa. Могу ли я написать «findByIdOne» или «findByIdEqualtoOne»? это даст мне id = 1 запись? Пожалуйста, дайте мне знать, спасибо.

Ответы [ 4 ]

1 голос
/ 24 октября 2019

Нет, вы не можете. Обратитесь к документации JPA Spring Data, в которой документы точные ключевые слова, которые вы можете использовать.

Вы можете указать запрос, который вы хотите, чтобы метод выполнялся, хотя,Что-то вроде

@Query("select c from Component c where c.id=1")
Component findByIdOne();

Мне нужно добавить отказ от ответственности: предоставляя это решение, я предполагаю, что вы действительно уверены, что ID 1 всегда будет существовать и всегда будет указывать на одну и ту же запись компонента в любомсреда, в которой вы можете запустить приложение. Я не рекомендую использовать жестко закодированные идентификаторы базы данных в коде вашего приложения.

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

Прямое написание запроса dsl вы не можете, но есть способ с Java 8, использующий методы по умолчанию:

Допустим, у вас есть запрос:

public interface ComponentRespository extends CrudRepository<Component, Long> {

    @Query("select c from Component c where c.id=:id")
    Component findById(@Param("id") Long id);

    default Component findByIdOne() {
        return findById(1L);
    }
    //eventually
    default Component findByIdTwo() {
        return findById(2L);
    }
}

Таким образом, выможно использовать:

private ComponentRespository componentRepository;

.....
Component componentOne = componentRepository.findByIdOne(); 
Component componentTwo = componentRepository.findByIdTwo(); 
0 голосов
/ 24 октября 2019

Вы можете использовать Optional<EntityName> findById(long id) или List<EntityName> findAllById, если он не уникален. У нас есть несколько вариантов: findByIdIs(long id) или findByIdEquals(long id)

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

Вы можете использовать Optional<EntityName> findById(long id) или List<EntityName> findById(long id), если он не уникален.

...