问题标签 [embeddedlist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - OrientDB - Java 创建一个字段为 EMBEDDEDLIST 类型
我尝试从 Java 创建一个类型为 EMBEDDEDLIST 的字段。
但是当我尝试创建它时,被认为是 LINK。
如果我将 Studio 的字段定义为带有链接类的 EMBEDDELIST,则 Java 可以正常工作。
我的代码:
在 doc 变量(类型 ODocument)中保存它时,如果我将字段指定为 EMBEDDEDLIST 工作正常,则在 DB(由 Studio 查询)上,我在“trialEmbedded”列中得到一个链接(带有@rid 可点击的橙色框)。
orientdb - OrientDB - 当我尝试保存嵌入列表时出现异常
我有一个名为的类CalculationFunctionGroup
,其中我有一个这样的属性:
在我的 OrientDB 上,我有一个名为EMBEDDEDLIST 和链接类CalculationFunctionGroup
的属性的表。functions
CalculationFunction
当我尝试保存 CalculationFunctionGroup 类型的对象时,会引发异常。
异常告诉我:
字段“函数”已声明为带有链接类“CalculationFunction”的 EMBEDDEDLIST,但记录没有类。
我尝试在 OrientDB 源代码中找到这个异常,我发现:
方法中有一个签入ODocument
类,validateEmbedded
其中有这些代码行:
所以,我不明白如何评估 immutableschemaclass 属性。
在我尝试从 Java 设置字段值的地方,我使用以下命令行:
data
我的ODocument
实例在哪里,fieldName
是functions
,价值是我List
的CalculationFunction
,OType
是EMBEDDEDLIST
。
使用的东方版本是 2.2.0
编辑#1
我在 Alessandro Rota 回答后尝试了这个,但错误是一样的:
在此代码片段中,我更改了对象的性质(原始对象是 CalculationFunctionGroup 的类型化对象,现在是 ODocument)。但错误是一样的。
我做过的另一次尝试,ODocumentmyEntity
没有附加函数(CalculationFunction 列表),但错误也出现了
编辑#2
我已经尝试过使用 Alessandro Rota 的代码片段并且工作正常。
但是,当我将链接字段添加为 CalculationFunction 字段时,我遇到了同样的错误!为什么?
如果我使用 object.getRawField("@rid") 添加链接字段而不是 object.getData() 它也可以正常工作。
我不明白,因为会引发该错误消息,以及当我仅使用 @rid 字段而不是完整对象时出现不同行为的原因
编辑#3 最新消息:
这是我的测试场景:
我有这张桌子:
具有这些属性的 CalculationFunction (schemafull):
referenceItem 链接函数 EMBEDDEDLIST
当我尝试保存时,我编写了以下代码:
这段代码出错了,但是......如果我写这个:
代码工作正常。
区别:referenceItem 是一个 schemafull 属性,referenceItem2 是一个无模式字段。
java - OrientDB 3.0.4 Java OValidationException:该字段已声明为 EMBEDDEDLIST 但使用了不兼容的类型
我正在使用带有 Java 和 orientdb-client.3.0.4 Java 驱动程序/库的 OrientDB 版本 3.0.4。
我正在尝试使用 EMBEDDEDLIST 类型,如下所示:
数据库架构:
使用 OrientDB 控制台,以下工作:
使用 Java 失败:
在尝试创建将两个 Phone(s) 对象存储为 List (ArrayList) 的 Profile Vertex 时,代码失败并出现以下异常:
这是代码:
这是输出:
以下是 Java 类:
解决方案:
我解决了以下问题:
根据https://orientdb.com/docs/last/general/Types.html上的文档,我不清楚 EMBEDDEDLIST 应该是 Java 类型List<Object>但我必须使用List<OVertex >。
文档指出“记录包含在所有者内部。包含的记录没有记录 ID,并且只能通过导航所有者记录才能访问”,但在这种情况下,电话顶点的创建方式如下:
以下位置的文档似乎非常少,并且没有提供 EMBEDDEDLIST 的示例。
https://orientdb.com/docs/last/java/Java-Query-API.html https://tinkerpop.apache.org/docs/current/reference/#connecting-via-java
我想知道是否有人可以指出更好的使用 Java API 与 OrientDB 或任何 GraphDB 交互的文档。
console - OrientDB 3.0.4 控制台 EMBEDDEDLIST 创建顶点
OrientDB 3.0.4 中的控制台应用程序似乎不向后兼容 OrientDB 3.0.2 以创建具有 EMBEDDEDLIST 的顶点。
OrientDB 3.0.4 控制台中的以下查询失败:
我该如何解决这个问题?v3.0.4 有哪些变化?在哪里可以找到更新的文档?
OrientDB 控制台 v.3.0.2 - Veloce(构建 e47e693f1470a7a642461be26983d4eca70777fd,分支开发)
OrientDB 控制台 v.3.0.4 - Veloce(构建 4578b51f72a55feaa0852bc8ddd52929011d956c,分支 3.0.x)
java - 通过java插入到东方数据库的嵌入式列表中
这是我用来创建必要类的 sql 脚本:
我正在尝试将一些值插入到我的 TotalSummary 类中,我还需要在 EmbeddedList 中插入一些值以用于定价摘要和产品摘要。
执行代码时出现以下异常
我已经尝试过的事情:
- 在将其添加到构建器之前,我曾尝试将其转换为 json 格式,例如 new Gson().toJson(pricingSummaries);
- 将pricingSummaries 和productSummaries 转换为Array()。