【发布时间】:2022-02-01 14:04:50
【问题描述】:
我有一个存储在 Redis 中的模型类,我将 Jpa Repository 与 Spring java 一起使用。如果给定模型已经存在于 Db 中,通常(不使用 redis)jpa 存储库会保存新数据或更新(有条件地)。在这里,我想向 redis 添加新项目,但如果它在 db 上不存在,否则像通常的 Jpa 实现一样更新它。
这是我的模型:
@Getter
@Setter
@RedisHash("MyRecord")
public class MyRecordRedisModel {
private String id;
@Id
@Indexed
private String recordName;
private Date startDate;
private Date endDate;
}
而我的存储库类只是一个普通的 spring jpa 存储库,如下所示:
@Repository
public interface IFRecordRedisRepository extends JpaRepository<IFRecordRedisModel, String> {
Page<IFRecordRedisModel> findAll(Pageable pageable);
}
唯一键必须是名称(我完全不关心 id 的唯一性)。因此,如果名称已经存在于 Db 中,则不要再次添加它。我将其标记为 Indexed,但它仍在添加相同的数据(具有相同的记录名称)。
我怎样才能让它独一无二?
【问题讨论】:
标签: spring jpa redis spring-data-jpa spring-data-redis