【问题标题】:Update Single Field of Hash in Redis更新 Redis 中的单个哈希字段
【发布时间】:2018-10-14 16:42:09
【问题描述】:

是否可以在不需要其他字段的情况下更新 Student 对象的单个字段?假设我想更新成绩字段。

import com.ahmetk.redis.redishll.model.Student;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;


@Repository
public interface StudentRepository extends CrudRepository<Student, String> {}


@RedisHash("Student")
@Data
@Getter
@Setter
@AllArgsConstructor
public class Student implements Serializable {

   public enum Gender {
      MALE, FEMALE
   }

   private String id;
   private String name;
   private Gender gender;
   private int grade;

   @Override
   public String toString() {
      return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", gender=" + gender + ", grade=" + grade + '}';
   }
}



    @Test
    public void whenDeletingStudent_thenNotAvailableOnRetrieval() throws Exception {
        final Student student = new Student("Eng2015001", "John Doe", Student.Gender.MALE, 1);
        studentRepository.save(student);
        studentRepository.delete(student.getId());
        final Student retrievedStudent = studentRepository.findOne(student.getId());
        assertNull(retrievedStudent);
    }

【问题讨论】:

  • 部分更新没有太大帮助,文档中的示例对于通过存储库保存和检索实体的情况有些缺陷。查看this 实际解决方案的答案

标签: java spring redis spring-data-redis


【解决方案1】:

你可以看看这个 - https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.repositories.partial-updates

文档中示例中的模板是 RedisKeyValueTemplate 的一个实例

@Autowired
private RedisKeyValueTemplate redisKVTemplate;
redisKVTemplate.update(entity)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多