私は、Java APIを介してorientDB 2.2.7を使用していて、次の頂点を作成している中で頂点に追加することができます5人の所有者、私は些細な方法でコードでそれを行うことができました、私の質問は、タイプの共同所有者の端の数を制限することができますorientDBの任意のメカニズムは、頂点の車に追加することができますか?リミットは、エッジの数はorientDB
0
A
答えて
2
Dynamic Hooksを使用してこの小さなテストケースを作ったが、私はあなたと似ていると思います。
create class Car extends V
create class Driver extends V
create class CoOwner extends E,OTriggered
ALTER CLASS CoOwner CUSTOM onBeforeCreate=createOwner
create property Car.ID string
create property Car.Model string
create property Car.Color string
create property Driver.Name string
create property Driver.Surname string
create property Driver.CF string
create index Car.ID UNIQUE_HASH_INDEX
create index Driver.CF UNIQUE_HASH_INDEX
create vertex Car set ID="AA666ZZ", Model="Fiat Panda", Color="Black"
create vertex Car set ID="BB222ZZ", Model="Ferrari 458 Italia", Color="Red"
create vertex Car set ID="CC954ZZ", Model="AlfaRomeo Giulietta", Color="Blue"
create vertex Driver set Name="Pino", Surname="Pasticcino", CF="PNOPSC1234567890"
create vertex Driver set Name="Giannaldo", Surname="Pippi", CF="GNLPIP1234567890"
create vertex Driver set Name="Pierromeo", Surname="Pasticcino", CF="PRMPSC1234567890"
create vertex Driver set Name="Adalbrigo", Surname="Brighi", CF="ALRBGH1234567890"
create vertex Driver set Name="Renfrancesco", Surname="Raldi", CF="RFCRLD1234567890"
create vertex Driver set Name="Caldanzio", Surname="Freddi", CF="CDZFRD1234567890"
create vertex Driver set Name="Roberdrigo", Surname="Brighi", CF="RBRBGH1234567890"
create vertex Driver set Name="Gorzorg", Surname="Il Distruggitore", CF="GRZIDG1234567890"
その後、次のコードを使用して、JS関数を作成する必要があります。そして、あなたは6つのエッジを追加しようとすることによってそれをテストすることができ
var MAX_EDGES = 5;
var CUR_EDGES = doc.field('out').field('out_CoOwner').size();
print('\n--------------------------------------------------------------------');
print('\n\nMax Edges: ' + MAX_EDGES);
print('\nCoOwner edges: ' + CUR_EDGES);
if (CUR_EDGES > MAX_EDGES){
throw new java.lang.RuntimeException("Maximum number of edges reached.");
}
else {
print('OK!');
}
。
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "PNOPSC1234567890")
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "RFCRLD1234567890")
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "GNLPIP1234567890")
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "CDZFRD1234567890")
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "PRMPSC1234567890")
create edge CoOwner from (select from Car where ID = "AA666ZZ") to (select from Driver where CF = "RBRBGH1234567890")
コンソールログ:
--------------------------------------------------------------------
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]
+0
あなたの答えをありがとう、これは素晴らしいですが、私の質問は、Java APIでそれを行う方法です。コード側よりもユーザーがコードを書くことなくそれを変更できるので、私はJavaフックをチェックします、もう一度ありがとう –
関連する問題
- 1. グラフモードのOrientDBエッジ
- 2. 複数の頂点間のOrientDbエッジ
- 3. OrientDB複数のエッジから一意の頂点を選択
- 4. OrientDBはすべてのエッジを照会します
- 5. OrientDB:特定の軽量エッジを削除するには?
- 6. OrientDBはshortestPath()でエッジを取得します
- 7. Match Statement OrientDBはカウントされたエッジを返します
- 8. OrientDBはdirection.OUTでエッジを取得できません
- 9. リミット倍の月名の数は
- 10. Orientdb:複数の頂点の間のエッジを見つける方法
- 11. OrientDBは同じ年の2つのノード間でエッジを作成する
- 12. エッジのプロパティの値に基づくグラフのトラバーサル| OrientDB
- 13. OrientDB:親から子へのエッジの作成
- 14. OrientDBのshortestPath()の訪問先エッジを取得する
- 15. リミット交換回数
- 16. OrientDBの行数
- 17. collection.all()リミット(n)はFOXX
- 18. ブートストラップ・カルーセル - 再リミット・リミット
- 19. ETLを使用してCSVからエッジをOrientDBグラフにインポートする方法は?
- 20. Orientdbでエッジをユニークにするにはどうすればよいですか
- 21. OrientDB - クラス名中の数字は
- 22. OrientDB CSVから頂点とエッジをロードする
- 23. [タイプ=「数」]エッジは常に `valueAsNumber`
- 24. はアウトOrientDBクエリ
- 25. OrientDB min()関数はウォークしません
- 26. 複数のエッジの色/スタイルは、
- 27. エラー関数SQL OrientDB
- 28. OrientDBは - 副選択
- 29. モンゴ:リミットは、スライス上の増分数にレコードを返さ
- 30. リミットは、その管理マニュアルにPostgreSQLの
こんにちは、私はOrientDBでこのような機能はないと思うが、あなたは、あなたのJavaアプリケーション –
それともから呼び出しますサーバー側のJS関数を書くことができますおそらくこれは便利なhttp://orientdb.com/docs/master/Hook.html –