每次调用findbyid(id)时,如何使spring数据按id返回相同的实体?
如果我调用两次,我会得到两个相等的对象,但现在是同一个对象,所以我对其中一个对象执行的操作不会影响另一个对象。
obj1 = objectRepo.findById("testID").orElse(null);
obj2 = objectRepo.findById("testID").orElse(null);
obj1.setX("Y");
System.out.println(obj1.equals(obj2)); //false
是否可以仅在配置文件中执行此操作?
我在使用Spring5.0.0和SpringMongoDB 2.0.0.m7数据
最佳答案
为此,您需要一些缓存。
按照本文使用redis缓存mondodb
Caching in MongoDB With Redis Using Spring Boot
架构如下
对于find,操作如果实体是int,则缓存返回它。
否则从数据库中获取对象。把它放在缓存中然后返回。
每次更新都会使缓存项失效或更新它。
关于java - Spring Data:如何通过ID获取相同的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48428189/