OrientDB3.0.33中orecordbytes的java模式Map

zed5wv10  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(139)

在OrientDB3.0.33中,我基于PythonOGM示例中的传感器示例创建了一个带有二进制字段的类。使用以下代码时(或多或少与此处相同)

ODocument doc = new ODocument("Sensor");
    doc.field("name", "Test");
    doc.field("zone", "z1");

    OBlob record;
    record = db.newBlob("Binary Data".getBytes()); // Files.readAllBytes(fileLocation));
    record.save();

    doc.field("photo", record);

引发以下异常

Exception in thread "main" java.lang.IllegalArgumentException: Cannot parse binary as the same type as the value (class=com.orientechnologies.orient.core.record.impl.ORecordBytes): #3:6[66, 105, 110, 97, 114, 121, 32, 68, 97, 116, 97] v1
    at com.orientechnologies.orient.core.serialization.serializer.OStringSerializerHelper.getBinaryContent(OStringSerializerHelper.java:997)
    at com.orientechnologies.orient.core.metadata.schema.OType.convert(OType.java:331)
    at com.orientechnologies.orient.core.record.impl.ODocumentHelper.convertField(ODocumentHelper.java:239)
    at com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:1463)
    at com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:1294)
    at test.App.main(App.java:32)

这大致说明我无法将orecordbytes对象Map到二进制字段中。
当然,如果我只是在一个未知类(即无模式持久性)上编写一个odocument,它就可以工作了。
正确的模式类型是什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题