0
我使用OrientDb 2.1-rc4作爲文檔數據庫。我有一個MyClass
類,它經常被多線程應用程序更新。爲了提高性能,我刪除了從State
類到MyClass
的鏈接,並添加了從MyClass
到State.
的鏈接和索引。爲了獲得MyClass
的所有實例,我需要獲取State
rids的列表,然後查詢索引。這個查詢讓我的國家擺脫。OrientDB使用子查詢的結果搜索索引
SELECT DISTINCT([email protected])
FROM #12:1
回報
[["#14:0","#14:1"]]
此查詢在索引中的正確的RID。
SELECT FROM index:MyClass.state
where key in [#14:0,#14:1]
當我把兩個查詢在一起。
SELECT FROM index:MWorkUnit.state
where key in (SELECT DISTINCT([email protected]) FROM #12:1)
我收到以下錯誤消息。
java.lang.ClassCastException:com.orientechnologies.orient.core.sql.query.OSQLSynchQuery不能轉換爲java.util.List的
如何獲得OrientDB對待我如子查詢一個清單?
編輯: 此查詢在不使用索引時有效。
SELECT FROM MWorkUnit
where state IN (SELECT expand(roles.views.states)[email protected] FROM #12:1)