2016-04-23 5 views
0

関係の文書にアクセスしようとしたとき、私は次の例外を取得:OrientDBのClassCastException

java.lang.ClassCastException: com.orientechnologies.orient.core.id.ORecordId cannot be cast to com.orientechnologies.orient.core.record.impl.ODocument 

経由:

Collection<ODocument> field = myDoc.field("MY_FIELD_NAME"); 
     if(field != null) { 
      return field; 
     } else { 
      return Collections.emptySet(); 
     } 

奇妙なことは、それは、常にそれが動作するほとんどの時間happesではないです期待通り。

答えて

0

フィールドに含まれる内容によっては、ODocumentの代わりにOIdentifiableというインターフェイスを使用できます。 使用してみてください:

Collection<OIdentifiable> field = myDoc.field("MY_FIELD_NAME"); 
if(field != null) { 
    return field; 
} else { 
    return Collections.emptySet(); 
} 
+0

フィールドは、他のODocuments、その古典的な(二)方向関係のコレクションが含まれています。 – kerner1000

+0

残念ながら、私はODocumentインスタンスが必要なので、これはあまり役に立ちません。 OIdentifiableで多くのことをすることはできません。 – kerner1000

+0

'identifiable.getRecord()'を実行してレコードを取得する必要があります。これは、ORecordIdまたはODocumentを持っている場合でも常に有効です。 – Lvca