问题标签 [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.

0 投票
1 回答
90 浏览

java - OrientDB - Java 创建一个字段为 EMBEDDEDLIST 类型

我尝试从 Java 创建一个类型为 EMBEDDEDLIST 的字段。

但是当我尝试创建它时,被认为是 LINK。

如果我将 Studio 的字段定义为带有链接类的 EMBEDDELIST,则 Java 可以正常工作。

我的代码:

在 doc 变量(类型 ODocument)中保存它时,如果我将字段指定为 EMBEDDEDLIST 工作正常,则在 DB(由 Studio 查询)上,我在“trialEmbedded”列中得到一个链接(带有@rid 可点击的橙色框)。

0 投票
1 回答
96 浏览

orientdb - OrientDB - 当我尝试保存嵌入列表时出现异常

我有一个名为的类CalculationFunctionGroup,其中我有一个这样的属性:

在我的 OrientDB 上,我有一个名为EMBEDDEDLIST 和链接类CalculationFunctionGroup的属性的表。functionsCalculationFunction

当我尝试保存 CalculationFunctionGroup 类型的对象时,会引发异常。

异常告诉我:

字段“函数”已声明为带有链接类“CalculationFunction”的 EMBEDDEDLIST,但记录没有类。

我尝试在 OrientDB 源代码中找到这个异常,我发现:

方法中有一个签入ODocument类,validateEmbedded其中有这些代码行:

所以,我不明白如何评估 immutableschemaclass 属性。

在我尝试从 Java 设置字段值的地方,我使用以下命令行:

data我的ODocument实例在哪里,fieldNamefunctions,价值是我ListCalculationFunctionOTypeEMBEDDEDLIST

使用的东方版本是 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 是一个无模式字段。

0 投票
0 回答
317 浏览

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 交互的文档。

0 投票
1 回答
129 浏览

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)

0 投票
1 回答
122 浏览

java - 通过java插入到东方数据库的嵌入式列表中

这是我用来创建必要类的 sql 脚本:

我正在尝试将一些值插入到我的 TotalSummary 类中,我还需要在 EmbeddedList 中插入一些值以用于定价摘要和产品摘要。

执行代码时出现以下异常

我已经尝试过的事情:

  1. 在将其添加到构建器之前,我曾尝试将其转换为 json 格式,例如 new Gson().toJson(pricingSummaries);
  2. 将pricingSummaries 和productSummaries 转换为Array()。