在查询Morphia时是否可以获取对象的相同实例。这是我目前在我的数据库中查找ServerInstances的查询。
Database.get().getDatastore().find(ServerInstance.class).field("_id").equal(id).get()
Database.get().getDatastore()
返回我之前创建的Morphia数据存储区。
如果我运行查询两次,则两个结果都不同。这是一个问题,例如我在Map中使用了原始实例。我已经考虑过更新ServerInstance#equals(Object obj)
方法以匹配具有匹配ID的对象,但这可能不是一个好主意。还有一个事实是我更新了第一个实例上的一些@Transient
字段,这意味着两个实例不再相同。
我考虑过为这些对象创建一个本地缓存,但是Morphia使用的查询系统比编写我自己的匹配对象检查要好得多。
基本上,我想知道的是,如果Morphia拥有我自己可以使用的本地缓存系统,或者更好的方法来缓存对象,以便我可以继续使用Morphia查询系统。 / p>
提前致谢!
答案 0 :(得分:2)
Morphia目前还没有像这样的缓存机制,没有。考虑到类似的东西的复杂性,它不太可能适应形态。不过,你可以用ehcache之类的东西来解决这个问题。