Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制可以添加到orientDB中顶点的边数_Orientdb - Fatal编程技术网

限制可以添加到orientDB中顶点的边数

限制可以添加到orientDB中顶点的边数,orientdb,Orientdb,我通过Java API使用orientDB 2.2.7,并创建了以下顶点: Vertex Car Vertex Driver Edge Co-Owner 对于每辆车,它最多只能得到五个车主,我已经通过代码以一种简单的方式做到了这一点,我的问题是orientDB中是否有任何机制可以限制可以添加到vertex car的共有人类型的边的数量?我使用了这个小测试用例,我希望与您的类似 创建类汽车扩展V 创建类驱动程序扩展V 创建类CoOwner扩展E,OTriggered ALTER CLASS Co

我通过Java API使用orientDB 2.2.7,并创建了以下顶点:

Vertex Car
Vertex Driver
Edge Co-Owner

对于每辆车,它最多只能得到五个车主,我已经通过代码以一种简单的方式做到了这一点,我的问题是orientDB中是否有任何机制可以限制可以添加到vertex car的共有人类型的边的数量?

我使用了这个小测试用例,我希望与您的类似

创建类汽车扩展V 创建类驱动程序扩展V 创建类CoOwner扩展E,OTriggered ALTER CLASS CoOwner CUSTOM onBeforeCreate=createOwner 创建属性Car.ID字符串 创建属性Car.Model字符串 创建属性Car.Color字符串 创建属性驱动程序。名称字符串 创建属性驱动程序。姓氏字符串 创建属性Driver.CF字符串 创建索引Car.ID唯一\u散列\u索引 创建索引驱动程序.CF唯一\u散列\u索引 创建顶点车集ID=AA666ZZ,型号=菲亚特熊猫,颜色=黑色 创建顶点车组ID=BB222ZZ,型号=法拉利458意大利,颜色=红色 创建顶点汽车集ID=CC954ZZ,型号=AlfaRomeo Giulietta,颜色=Blue 创建顶点驱动程序集名称=Pino,姓氏=Pasticino,CF=PNOPSC1234567890 创建顶点驱动程序集名称=Giannaldo,姓氏=Pippi,CF=GNLPIP1234567890 创建顶点驱动程序集名称=Pierromeo,姓氏=Pasticino,CF=PRMPSC1234567890 创建顶点驱动程序集名称=Adalbrigo,姓氏=Brighi,CF=ALRBGH1234567890 创建顶点驱动程序集名称=Renfrancesco,姓氏=Raldi,CF=RFCRLD1234567890 创建顶点驱动程序集名称=Caldanzio,姓氏=Freddi,CF=CDZFRD1234567890 创建顶点驱动程序集名称=Roberdrigo,姓氏=Brighi,CF=RBGH1234567890 创建顶点驱动程序集名称=Gorzorg,姓氏=Il Distriuggitore,CF=GRZIDG1234567890 然后,您需要使用以下代码创建一个JS函数:

var MAX_边=5; var CUR_EDGES=文档字段'out'。字段'out_CoOwner'。大小; 打印“\n--------------------------------------------”; 打印“\n\n最大边:”+最大边; 打印“\n所有者边:”+当前边; 如果当前边>最大边{ 抛出new java.lang.RuntimeException达到的最大边数。; } 否则{ 打印‘OK!’; } 然后您可以尝试添加6条边来测试它

从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=PNOPSC1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=RFCRLD1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=GNLPIP1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=CDZFRD1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=PRMPSC1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=RBGH1234567890的“从驾驶员中选择” 控制台日志:

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 1
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 2
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 3
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 4
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 5
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 6

2016-08-22 17:46:45:292 SEVER Internal server error:
com.orientechnologies.orient.core.command.script.OCommandScriptException: Error on parsing script at position #2: Error on execution of the script
Script: createOwner
-------^
    DB name="stack39062533"
--> javax.script.ScriptException: java.lang.RuntimeException: Maximum number of edges reached. in <eval> at line number 10 at column number 2
--> <eval>:10:2 java.lang.RuntimeException: Maximum number of edges reached.
--> java.lang.RuntimeException: Maximum number of edges reached. [ONetworkProtocolHttpDb]

我使用了这个小测试用例,希望与您的类似

创建类汽车扩展V 创建类驱动程序扩展V 创建类CoOwner扩展E,OTriggered ALTER CLASS CoOwner CUSTOM onBeforeCreate=createOwner 创建属性Car.ID字符串 创建属性Car.Model字符串 创建属性Car.Color字符串 创建属性驱动程序。名称字符串 创建属性驱动程序。姓氏字符串 创建属性Driver.CF字符串 创建索引Car.ID唯一\u散列\u索引 创建索引驱动程序.CF唯一\u散列\u索引 创建顶点车集ID=AA666ZZ,型号=菲亚特熊猫,颜色=黑色 创建顶点车组ID=BB222ZZ,型号=法拉利458意大利,颜色=红色 创建顶点汽车集ID=CC954ZZ,型号=AlfaRomeo Giulietta,颜色=Blue 创建顶点驱动程序集名称=Pino,姓氏=Pasticino,CF=PNOPSC1234567890 创建顶点驱动程序集名称=Giannaldo,姓氏=Pippi,CF=GNLPIP1234567890 创建顶点驱动程序集名称=Pierromeo,姓氏=Pasticino,CF=PRMPSC1234567890 创建顶点驱动程序集名称=Adalbrigo,姓氏=Brighi,CF=ALRBGH1234567890 创建顶点驱动程序集名称=Renfrancesco,姓氏=Raldi,CF=RFCRLD1234567890 创建顶点驱动程序集名称=Caldanzio,姓氏=Freddi,CF=CDZFRD1234567890 创建顶点驱动程序集名称=Roberdrigo,姓氏=Brighi,CF=RBGH1234567890 创建顶点驱动程序集名称=Gorzorg,姓氏=Il Distriuggitore,CF=GRZIDG1234567890 然后,您需要使用以下代码创建一个JS函数:

var MAX_边=5; var CUR_EDGES=文档字段'out'。字段'out_CoOwner'。大小; 打印“\n--------------------------------------------”; 打印“\n\n最大边:”+最大边; 打印“\n所有者边:”+当前边; 如果当前边>最大边{ 抛出new java.lang.RuntimeException达到的最大边数。; } 否则{ 打印‘OK!’; } 然后您可以尝试添加6条边来测试它

从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=PNOPSC1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=RFCRLD1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=GNLPIP1234567890的“从驾驶员中选择” 从“选择”创建边所有者 从ID=AA666ZZ的汽车中选择CF=CDZFRD1234567890的驾驶员 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=PRMPSC1234567890的“从驾驶员中选择” 从ID=AA666ZZ的“从汽车中选择”创建边缘所有者,从CF=RBGH1234567890的“从驾驶员中选择” 控制台日志:

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 1
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 2
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 3
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 4
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 5
OK!

--------------------------------------------------------------------


Max Edges: 5

CoOwner edges: 6

2016-08-22 17:46:45:292 SEVER Internal server error:
com.orientechnologies.orient.core.command.script.OCommandScriptException: Error on parsing script at position #2: Error on execution of the script
Script: createOwner
-------^
    DB name="stack39062533"
--> javax.script.ScriptException: java.lang.RuntimeException: Maximum number of edges reached. in <eval> at line number 10 at column number 2
--> <eval>:10:2 java.lang.RuntimeException: Maximum number of edges reached.
--> java.lang.RuntimeException: Maximum number of edges reached. [ONetworkProtocolHttpDb]

您好,我认为OrientDB中没有这样的功能,但是您可以编写一个服务器端JS函数,从java应用程序调用,或者这可能有用您好,我认为OrientDB中没有这样的功能,但是您可以编写一个服务器端JS函数,您将从java应用程序调用它,或者这可能会很有用谢谢您的回答,这很好,但我的问题是如何使用java API实现它,因为限制是业务端而不是代码端,所以用户可以在不编写代码的情况下更改它,我将检查java挂钩,再次感谢感谢您的回答,这很好,但我的问题是如何使用Java API,因为限制是业务方面而不是代码方面,所以用户可以在不编写代码的情况下更改它,我将检查Java挂钩,再次感谢您