Morphia可以缓存查询结果以每次生成相同的实例

时间:2015-01-21 18:14:59

标签: java mongodb morphia

在查询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>

提前致谢!

1 个答案:

答案 0 :(得分:2)

Morphia目前还没有像这样的缓存机制,没有。考虑到类似的东西的复杂性,它不太可能适应形态。不过,你可以用ehcache之类的东西来解决这个问题。