2015-03-30 85 views
0

在我的初始化代码中,我创建了1 Morphia实例,并用它来映射我所有数据库中的所有类。我注意到,尽管如此,当我拨打ensureIndexes()时,它会初始化一个空集合并索引所有数据库中的所有集合。Morphia:为每个数据库创建新的Morphia实例?

是否正确的模式,而不是每个数据库创建1 Morphia实例,然后循环通过每个实例ensureIndexes?

回答

1

您可以使用一个Morphia实例并为每个数据库创建一个数据存储,只要它们都共享相同的映射信息即可。

+0

现在我正在使用单个morphia实例为每个数据库创建一个数据存储。但是,当我在任何实例上调用datastore.ensureIndexes()时,它会为映射到morphia的所有类创建索引和集合。 – user2066880 2015-03-31 00:18:27

+0

是的。它会这样做。每个Morphia实例都有一个Mapper。如果你不想在每个数据库中收集每一个数据集,那么你就需要分解一些东西。 – evanchooly 2015-03-31 00:45:19

+0

好的。感谢您的澄清。 – user2066880 2015-03-31 01:03:53