Spring Data:如何通过ID获取相同的实体

时间:2018-01-24 17:16:57

标签: java spring mongodb spring-data

每次调用findById(id)时,如何让Spring Data按ID返回相同的实体? 如果我调用这两次,我会得到两个相同的对象,但现在是同一个,所以我对其中一个执行的操作不会影响另一个。

obj1 = objectRepo.findById("testID").orElse(null);
obj2 = objectRepo.findById("testID").orElse(null);
obj1.setX("Y");
System.out.println(obj1.equals(obj2)); //false

是否可以在配置文件中执行? 我使用Spring 5.0.0和Spring Data MongoDB 2.0.0.M7

2 个答案:

答案 0 :(得分:0)

两个对象都没有更新。实际场景的工作方式如下:enter image description here

答案 1 :(得分:0)

为此,您需要进行一些缓存

按照本文使用 Redis 缓存 MondoDB  Caching in MongoDB With Redis Using Spring Boot

架构如下

  • 对于find,如果实体是int,则操作返回缓存。
  • 否则从db获取对象。把它放在缓存中并返回。
  • For Every update使缓存条目无效或更新它。

enter image description here