Spring Boot: Spring Data JPA репозитории

Репозитории Spring Data JPA - это интерфейсы, которые вы можете определить для доступа к данным. Запросы JPA создаются автоматически из имен ваших методов. Например, интерфейс CityRepository может объявить метод findAllByState(String state), чтобы найти все города (city) в данном штате (state).

Для более сложных запросов вы можете аннотировать ваш метод аннотацией Query в Spring Data.

Хранилища Spring Data обычно берутся из интерфейсов Repository или CrudRepository. Если вы используете автоконфигурацию, поиск в репозиториях происходит из пакета, содержащего ваш основной класс конфигурации (тот, который аннотирован @EnableAutoConfiguration или @SpringBootApplication).

В следующем примере показано типичное определение интерфейса хранилища Spring Data:

package com.example.myapp.domain;

import org.springframework.data.domain.*;
import org.springframework.data.repository.*;

public interface CityRepository extends Repository<City, Long> {

    Page<City> findAll(Pageable pageable);

    City findByNameAndStateAllIgnoringCase(String name, String state);

}

Репозитории Spring Data JPA поддерживают три различных режима начальной загрузки: по умолчанию, отложенный и ленивый. Чтобы включить отложенную или ленивую загрузку, установите для свойства spring.data.jpa.repositories.bootstrap-mode соответственно значение deferred или lazy. При использовании отложенной или ленивой начальной загрузки автоматически настроенный EntityManagerFactoryBuilder будет использовать контекст AsyncTaskExecutor, если он есть, в качестве исполнителя начальной загрузки. Если существует более одного, будет использоваться приложение с именем applicationTaskExecutor.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки