On 14/08/2014 18:53, Luca Garulli wrote:
You can configure OrientDB to be less strict than Blueprints that
doesn't accept NULL values and the "id" property name:
graph.setStandardElementConstraints(false);
In fact, for historical reasons, gaedo never stores null values (and
initial versions even failed when any null value was encountered). So
it's not really a problem for me.
But in your case the problem seems to be the dot (.). In OrientDB with
the dot-notation you cross embedded objects (this isn't supported by
Blueprints and Neo4J).
Can you try to set this against vertex/edge before to set the property?
v.getRecord().setAllowChainedAccess(false);
If this works (please let me know it), we can fix BP implementation to
implicitly call this method against all the vertex/edge underlying
documents.
I've tried it, and it seems to raise back old bugs ...
I will do more investigations soon.
Strange property names apart, which are the other problems (I already
saw other email about transactions & indexes) ?
The strange property names bug has extended since my first mail : I've
hunted down all locations where "." and ":" characters were used, and
replaced all with instance of constants that are configured from system
properties, just to discover that, as property names are URLEncoded as
UTF-8, using any non pure ASCII character drives to immediate failure,
due to
java.lang.IllegalArgumentException: Invalid field name
'out_com_dooapp_gaedo_test_beans_Post-%3Eauthor'. Character '%' is invalid
at
com.orientechnologies.orient.core.record.impl.ODocument.checkFieldName(ODocument.java:1668)
at
com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:761)
at
com.orientechnologies.orient.core.record.impl.ODocument.field(ODocument.java:673)
at
com.tinkerpop.blueprints.impls.orient.OrientVertex.createLink(OrientVertex.java:150)
at
com.tinkerpop.blueprints.impls.orient.OrientVertex.addEdge(OrientVertex.java:708)
at
com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.addEdge(OrientBaseGraph.java:527)
at
com.tinkerpop.blueprints.impls.orient.OrientBaseGraph.addEdge(OrientBaseGraph.java:57)
at
com.dooapp.gaedo.blueprints.indexable.IndexableGraphBackedFinderService.createEdgeFor(IndexableGraphBackedFinderService.java:216)
at
I find particularly strange that URLEncoded values can't contain "%", as
this character specifically allows the use of any non-ASCII character.
But, well, appart property names characters, and transactions and
indexes compatibility, I hope that's all the interpretation differences
I will find ...
--
Nicolas Delsaux
--
---
You received this message because you are subscribed to the Google Groups "OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.