R2dbcRepository BeanCreationException Нет свойства findAll не найдены для типа

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

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'temperatureLibraryReactiveRepository'
defined in com.PlayGroundAdv.Solar.repositories.reactive.TemperatureLibraryReactiveRepository defined
in @EnableR2dbcRepositories declared on SolarApplication: Invocation of init method failed
nested exception is java.lang.IllegalArgumentException: Failed to create query for method 
public abstract reactor.core.publisher.Flux
com.PlayGroundAdv.Solar.repositories.reactive.TemperatureLibraryReactiveRepository.findAll(org.springframework.data.domain.Pageable)! 
No property findAll found for type TemperatureLibraryEntity!

Я не уверен, связано ли это с использованием Pageable, и если это так, я не нашел альтернативы для Pageable с подходом R2DBC.

все раньше работало нормально с подходом JPA вот мой репозиторий

import com.PlayGroundAdv.Solar.entity.TemperatureLibraryEntity;
import com.PlayGroundAdv.Solar.model.AllPostalCodeModel;
import org.springframework.data.domain.Pageable;
import org.springframework.data.r2dbc.repository.Modifying;
import org.springframework.data.r2dbc.repository.Query;
import org.springframework.data.r2dbc.repository.R2dbcRepository;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Flux;

import javax.transaction.Transactional;

@Repository
public interface TemperatureLibraryReactiveRepository extends R2dbcRepository<TemperatureLibraryEntity, Long> {

    // A.B 11-18 Get All Temp By postal Code
    Flux<TemperatureLibraryEntity> findByPostalCode(String postalCode, Pageable pageable);

    String FIND_POSTAL_CODE = "SELECT new com.PlayGroundAdv.Solar.model.AllPostalCodeModel ( u.id, u.postalCode) FROM TemperatureLibraryEntity u order by u.postalCode";

    @Transactional
    @Modifying
    @Query(value = FIND_POSTAL_CODE)
    Flux<AllPostalCodeModel> findAllPostalCode();
    Flux<TemperatureLibraryEntity> findAll(Pageable pageable);
}

person skander    schedule 11.09.2020    source источник


Ответы (1)


  1. Удалите аннотацию @repository, установите basePackages для пакетов, которые содержат репозитории в EnableR2dbcRepositories.

  2. Для разбивки на страницы отметьте это сообщение. Сейчас нет PaginationAndSortRepository для реактивного случая.

Посмотрите образец о R2dbc из моего репозитория реактивных образцов.

И образец для последних версий Spring 5.3 и Spring Data R2dbc 1.2, есть пример для нумерации страниц. В эту версию внесены некоторые критические изменения, я обновлю образцы кодов на следующей неделе, когда выйдет следующая веха (Spring Data R2dbc 1.2.0-RC1), которая включает некоторые исправления.

person Hantsy    schedule 12.09.2020