Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Unable to get result from the Redis using Crud Repository in Spring Boot?

$
0
0

I am developing Spring Boot + Redis example. I've taken a reference from link : https://www.baeldung.com/spring-data-redis-tutorial. In this example, I developed repository method Student findByNameAndGender(String name, Gender gender); and even the Student findByName(String name);, but I am not getting any result back on both cases.?

Any quick help? Redis query -

redis 127.0.0.1:6379> KEYS *1) "Student"2) "Student:bb4df14a-7f42-4fc3-b608-fc4b7d45109e"3) "Student:69affaa4-e56c-49e3-9ef4-1cd7509d299b"redis 127.0.0.1:6379>

Student.java

@Data@AllArgsConstructor@Builder@NoArgsConstructor@RedisHash("Student")public class Student {    public enum Gender {        MALE, FEMALE    }    private String id;    private String name;    private Gender gender;    private int grade;}

StudentRepository.java

@Repositorypublic interface StudentRepository extends CrudRepository<Student, String>{    Student findByNameAndGender(String name, Gender gender);}

RedisConfig.java

@Configuration@EnableRedisRepositoriespublic class RedisConfig {    @Bean    JedisConnectionFactory jedisConnectionFactory() {        return new JedisConnectionFactory();    }    @Bean    public RedisTemplate<String, Object> redisTemplate() {        final RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();        template.setConnectionFactory(jedisConnectionFactory());        template.setValueSerializer(new GenericToStringSerializer<Object>(Object.class));        return template;    }}

SpringDataRedisEugenpApplication.java

@SpringBootApplicationpublic class SpringDataRedisEugenpApplication implements CommandLineRunner{    @Autowired    private StudentRepository repository;    public static void main(String[] args) {        SpringApplication.run(SpringDataRedisEugenpApplication.class, args);    }    @Override    public void run(String... args) throws Exception {        repository.save(Student.builder().name("John").gender(Student.Gender.MALE).grade(1).build());        repository.save(Student.builder().name("Michael").gender(Student.Gender.MALE).grade(2).build());        Iterable<Student> students = repository.findAll();        for (Student student : students) {            System.out.println("=============================");            System.out.println("Details ? "+student.toString());        }        Student s = repository.findByNameAndGender("John", Student.Gender.MALE);        System.out.println("Student ="+s.toString());  //line-34    }}

Error -

java.lang.IllegalStateException: Failed to execute CommandLineRunner    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:795) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:776) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    at com.baeldung.SpringDataRedisEugenpApplication.main(SpringDataRedisEugenpApplication.java:19) [classes/:na]Caused by: java.lang.NullPointerException: null    at com.baeldung.SpringDataRedisEugenpApplication.run(SpringDataRedisEugenpApplication.java:34) [classes/:na]    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:792) [spring-boot-2.0.6.RELEASE.jar:2.0.6.RELEASE]    ... 5 common frames omitted

Few Queries -

1) How to see actual data stored in the redis?

2) How we can control Id to be started from one ?

edis 127.0.0.1:6379> get Student:1(error) ERR Operation against a key holding the wrong kind of valueredis 127.0.0.1:6379> get Student:2(error) ERR Operation against a key holding the wrong kind of valueredis 127.0.0.1:6379>

I am really struggling to see

redis 127.0.0.1:6379> mget Student:11) (nil)redis 127.0.0.1:6379> mget Student:21) (nil)redis 127.0.0.1:6379> mget Student1) (nil)

enter image description here


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>