2015-08-14 75 views
0

我是Scala和OrientDb的新手,請幫我解決這個問題。 我想在我的Play Framework Scala項目中使用OriendDB Java庫。 這個簡單的代碼返回以下編譯器錯誤:如何遍歷Scala中OrientDB的OResultSet?

value filter is not a member of com.orientechnologies.orient.core.sql.query.OResultSet[com.orientechnologies.orient.core.record.impl.ODocument]

val goods: OResultSet[ODocument] = db.query(
    new OSQLSynchQuery[ODocument]("select * from Good")) 
for (good: ODocument <- goods) { 
    Logger.debug(good.field("cost")) 
} 

同樣的編譯錯誤,如果我嘗試我有:

for (good: ODocument <- db.browseClass("Good")) { 
    Logger.debug(good.field("cost")) 
} 

如何正確遍歷這個集合在Scala中?

+1

我真的懷疑你有這段代碼的消息。另外,它似乎是一個編譯錯誤,你應該提到它 – Dici

回答

0

我已經導入了scala.collection.JavaConversions._和現在迭代工程

+0

這是ODB對scala集成的默認答案:使用asScala,toJava(或它們的隱式版本)。糟糕的想法是,它失敗了許多令人驚訝的方式,因爲文檔是遞歸定義的。祝好運通過scala列表或地圖到ODB(如果您的列表或地圖包含scala列表或地圖,它肯定會失敗)。 ODB確實需要提供一個映射器插件(例如Jackson) - 它完全解組ODB中的對象。 – user48956

+0

https://github.com/dimparf/Soriento似乎提供了更好的集成。 – user48956