我有以下類,這是持續到一個使用嗎啡在戲劇mongodb!應用。這個類駐留在一個模塊中,這是另一個遊戲的依賴!應用。查找所有播放嗎啡後重新初始化失敗
它的配置是從一個文件中讀取的,並在初始加載時保存到數據庫中(如果它尚未在數據庫中),然後後續請求使用db版本。
@Entity
public class Page extends Model {
@Id
public Long navigationId;
// etc ...
}
初始加載和後續查詢獲得好的工作,我可以在蒙戈看到頁面:
> db.Page.find({_id:20000})
{ "_id" : NumberLong(20000), "className" : "models.Page" etc }
但是如果我重新開始玩!或修改代碼導致嗎啡被重新初始化 (MorphiaPlugin-1.2.4> initialized
出現在日誌中)我得到以下堆棧跟蹤:
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: com.google.code.morphia.mapping.MappingException: Error setting value from converter (LongConverter) for models.Page.navigationId to 20000
at com.google.code.morphia.mapping.Mapper.fromDb(Mapper.java:487)
at com.google.code.morphia.mapping.Mapper.fromDBObject(Mapper.java:267)
at com.google.code.morphia.query.MorphiaIterator.convertItem(MorphiaIterator.java:66)
at com.google.code.morphia.query.MorphiaIterator.processItem(MorphiaIterator.java:53)
at com.google.code.morphia.query.MorphiaIterator.next(MorphiaIterator.java:48)
at com.google.code.morphia.query.QueryImpl.asList(QueryImpl.java:255)
at play.modules.morphia.Model$MorphiaQuery.asList(Model.java:1067)
at models.Page.findAll(Page.java)
at plugins.PageConfigLoadPlugin.loadPersistedPages(PageConfigLoadPlugin.java:62)
at plugins.PageConfigLoadPlugin.onApplicationStart(PageConfigLoadPlugin.java:51)
at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:425)
at play.Play.start(Play.java:495)
... 3 more
Caused by: java.lang.RuntimeException: com.google.code.morphia.mapping.MappingException: Error setting value from converter (LongConverter) for models.Page.navigationId to 20000
at com.google.code.morphia.mapping.ValueMapper.fromDBObject(ValueMapper.java:27)
at com.google.code.morphia.mapping.Mapper.readMappedField(Mapper.java:501)
at com.google.code.morphia.mapping.Mapper.fromDb(Mapper.java:484)
... 14 more
Caused by: com.google.code.morphia.mapping.MappingException: Error setting value from converter (LongConverter) for models.Page.navigationId to 20000
at com.google.code.morphia.converters.DefaultConverters.fromDBObject(DefaultConverters.java:133)
at com.google.code.morphia.mapping.ValueMapper.fromDBObject(ValueMapper.java:25)
... 16 more
如果我使用命令行從MongoDB中刪除集合,我可以再次加載和查詢頁面在我的遊戲中成功! web應用程序
> db.Page.drop()
true
正如我所提到的,這個類是在一個模塊中。此問題只發生在模塊依賴於的一個應用程序中。其他演示應用程序正常工作。
有什麼建議?
感謝您的建議克里斯。在classpath中沒有其他頁面聲明。我相當確信值正在被正確保存,因爲在命令行上檢索它返回「_id」:NumberLong(20000),並且該類中的聲明是long navigationId。 – Toby 2012-01-11 22:53:30