Spring JpaSpecificationExecutor нет свойства findAll найдено для типа Alarm - PullRequest
0 голосов
/ 20 апреля 2020

Я использую Redis для хранения аварийных сигналов моего приложения с сущностью, как показано ниже:

@RedisHash("alarm")
public class Alarm implements Serializable{

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    @Indexed
    private String name;

    @Indexed
    private String createdAt;

    @Indexed
    private String createdBy;

    @Indexed
    private String clearAt;

    @Indexed
    private String clearBy;
}

Конфигурация источника данных выглядит следующим образом:

@Configuration
@EnableRedisRepositories(basePackages = "com.app.demo.redis.repository")
public class RedisDataSourceConfiguration {

@Autowired
private RedisProperties redisProperties;

@Bean
public JedisConnectionFactory jedisConnectionFactory(){
    RedisStandaloneConfiguration redisConfiguration = new RedisStandaloneConfiguration();
    return new JedisConnectionFactory();
    }

@Bean
public RedisTemplate<Object, Object> redisTemplate(){
    RedisTemplate<Object, Object> template = new RedisTemplate<Object, Object>();
    template.setConnectionFactory(jedisConnectionFactory());
    }
}

И это хранилище:

@Repository
public interface AlarmRedisRepository extends JpaRepository<Alarm, Long>, JpaSpecificationExecutor<Alarm>{
}

Я использовал Specification для настройки поиска:

public class AlarmSpecification implements Specification<Alarm>{
    private Alarm filter;

    public AlarmSpecification(Alarm alarm){
        this.alarm = alarm;
    }

    @Override
    public Predicate toPredicate(Root<Alarm> root, CriteriaQuery<?> query, CriteriaBuilder builder){
            // This is where I added the filter
            Predicate predicate = builder.disjunction();
            return predicate;
    }
}

В моем @Service:

@Autowired
private AlarmRedisRepository repo;


Pageable pageable = .....
Alarm alarm = .....
Specification<Alarm> specification = new AlarmSpecification(alarm);
Page<Alarm> page = repo.findAll(specification, pageable);

он возвращает ошибку в качестве заголовка. Любой, кто раньше работал с Redis и Specification, может мне помочь !!! Спасибо в продвинутом

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