2016-05-19 7 views
0

Ich habe ein Diagramm mit Scheitelpunkten mit einer Eigenschaft namens fbid, und ich habe einen Index dafür mit einer Eindeutigkeitsbedingung erstellt. Initialisierung des Graphen (Installation das Schema und das Hinzufügen einiger Anfangs Ecken und Kanten) passiert Java-Code verwenden, die ich zu den Titan-Bibliotheken hinzugefügt und dass ich manuell auslösen in der Gremlin-Shell:Der Versuch, einen Scheitelpunkt mit der Eigenschaft hinzuzufügen, verletzt die Eindeutigkeitseinschränkung, obwohl der Eigenschaftswert noch nicht vorhanden ist.

gremlin> :> com.my.example.TestGraphFactory.loadScheme(graph) 
gremlin> :> com.my.example.TestGraphFactory.loadGraph(graph) 

Nun, ich bin versucht, Dazu:

gremlin> :> g.V().has('fbid', 'fbid_42') 
gremlin> :> g.V().addV(label, 'user').property('fbid', 'fbid_42') 
Adding this property for key [fbid] and value [fbid_42] violates a uniqueness constraint [fbid] 
Display stack trace? [yN] y 
org.apache.tinkerpop.gremlin.groovy.plugin.RemoteException: Adding this property for key [fbid] and value [fbid_42] violates a uniqueness constraint [fbid] 
at org.apache.tinkerpop.gremlin.console.groovy.plugin.DriverRemoteAcceptor.submit(DriverRemoteAcceptor.java:116) 
at org.apache.tinkerpop.gremlin.console.commands.SubmitCommand.execute(SubmitCommand.groovy:41) 
at org.codehaus.groovy.tools.shell.Shell.execute(Shell.groovy:101) 
at org.codehaus.groovy.tools.shell.Groovysh.super$2$execute(Groovysh.groovy) 
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130) 
at org.codehaus.groovy.tools.shell.Groovysh.executeCommand(Groovysh.groovy:254) 
at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:153) 
at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:119) 
at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:94) 
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) 
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150) 
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:123) 
at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:58) 
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) 
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130) 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:150) 
at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:82) 
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:215) 
at org.apache.tinkerpop.gremlin.console.Console.<init>(Console.groovy:144) 
at org.codehaus.groovy.vmplugin.v7.IndyInterface.selectMethod(IndyInterface.java:215) 
at org.apache.tinkerpop.gremlin.console.Console.main(Console.groovy:303) 

ich den Grund dafür nicht sehen, da dies praktisch die erste Aktion, die ich nehme, nachdem das Schema und die Initialisierung das Graphen mit einigen ersten Ecken und Kanten (keiner von ihnen mit dieser besonderen Eigenschaft Gründung Wert).

Wo soll ich hinschauen?

+0

Können Sie den Code für 'loadScheme' und' loadGraph' veröffentlichen? –

+0

Beide haben das Problem nicht verursacht. Ich habe einen Fehler in der Anfrage gemacht. Siehe meine Antwort unten. –

Antwort

0

Der Grund liegt hier:

gremlin> :> g.V().addV(label, 'user').property('fbid', 'fbid_42') 

ich zu blind war zu sehen, dass ich einen Antrag machen alle Ecken zu erhalten, bevor Sie den neuen Stützpunkt hinzuzufügen. Die richtige Anfrage wäre also

gremlin> :> g.addV(label, 'user').property('fbid', 'fbid_42')