- Support for Neo4j 3.5.x (required adaptations for in memory db usage).
Fixed
- Issue with labels retrieval when using AbstractEmbeddedDBAccess and forcing PlannerStrategy.COST.
New
- Collections in the Query API are now aware of their component type. This allows expressions like: WHERE.valueOf(path.relations().last().type()).EQUALS("Some_Type") or: WHERE.has(path.nodes().head().label("Some_Label"))
Fixed
- minHops(0) now works correctly. Previously it was translated to cypher *.. or * respectively for specifying a link's min cardinality to be zero. However in practice this returns a min cardinality of one. Now minHops(0) is translated to cypher *0.. which works correctly. This also changes the behaviour of Domain Query expression DISTANCE(min, max) with a min of 0. This works correctly now but has changed it's behaviour, so you might need to adopt some of your queries.
New
- Support for Neo4J 3.4.1.
New
- Support for Neo4J 3.3.1.
- Set planner strategy globally or individually on a per query basis.
- New - ...SET(...).byExpression() - to allow formulating the expression in form of Clauses (e.g. CASE .. WHEN ..)
New
- Support for Neo4J 3.2.2.
- Shutdown hooks in IDBAccess optional
- Public constructors for IDBAccess implementations allow more flexibly customizable configurations. Although you are highly encouraged to use DBAccessFactory, you are no longer forced to do so.
New
- Support for Neo4J 3.1.1.
- Extended Authentication according to Neo4J's Bolt Driver specification
New
- Some improvements like simple construction of literal lists.
- Code compatibility with Java 1.7 (JCypher since 3.5.0 however is built for Java 1.8. This is required, so that JCypher- embedded and- in-memory db access works with Neo4J 3.0.x ).
New
- Support for Neo4J 3.0.x including the BOLT protocol
Fixed
- JC.coalesce(...) now returns a JcValue to be applicable in RETURN and WITH clauses.
New
- Store / retrieve Domain Queries to / from the graph db.
- JcQueryParameter to be used with Query DSL expressions.
New
Extensions to the Query-DSL API
- JcCollection: add(...), addAll(...), get(...)
- JcValue: asNumber(), asString(), asBoolean()
- Property: values(...)
Changed
There is one API change which is not backward compatible:
In class Property there where two implementations of method value(...): public <E> T value(E value), and public <E> T value(E... value). This was ambiguous in case of a single argument and some language compilers like e.g. for Scala had problems with that. This is now solved by using different method names: public <E> T value(E value), and public <E> T values(E... value). If you are using this API you are required to change the method name(s) in your code.
Fixed
- Illegal use of parameter-sets with MERGE, now using simple parameters.
- Added support for all Collection sub classes in domain model.
New
- Query DSL - DETACH DELETE
- JSONDBFacade, JSONDomainFacade
Fixed
- Bug in adding super interface to generic interface model.
Fixed
- NullpointerException in ResultHandler in certain query scenarios.
New
- Concurrency support - thread-safe invocation of 'IDomainAccess' and domain queries.
- Query DSL and Domain Query - String Operators: STARTS_WITH, CONTAINS (CONTAINS_string), ENDS_WITH
- Query DSL - Support for Literal Maps
- Upgrade to Neo4j 2.3.1
New
- Concurrency support - multi client access to the database, optimistic locking.
- Query DSL - MERGE, ON_CREATE, ON_MATCH
- Query DSL - CASE, WHEN, ELSE, END
Fixed
- Bug in close transaction when working with generic graph model.
New
- Generic Domain Model.
Fixed
- Domain Query - Select Expression on abstract types produced (in rare scenarios) wrong results.
- Domain Query - Count Expression within Select Expression on abstract types produced (in rare scenarios) exceptions.
- Unnecessary rounding of milliseconds when mapping Date instances removed.
Fixed
- Properties of nodes in generic graph model which are of type short were not stored to the graph database (fix in JSONWriter).
- Changed signature of store(List ..) to store(List<?> ..) in IDBAccess. Calls to store(..) with lists of types other than Object were not dispatched correctly.
New
- Transaction API.
New
- Works with Neo4j 2.2.2.
- Support for basic authentication and authorization.
New
- Domain Queries - Query Concatenation.
Fixed
- Problem with list parameters in embedded database access.
New
- Domain Queries Part 3 (Collection Expressions - UNION, INTERSECTION) added.
- Improved support for multiple domains in a single database.
New
- Domain Queries Part 3 (Collection Expressions - SELECT, REJECT, COLLECT) added.
Fixed
- Support for Date subclasses (java.sql.Date, java.sql.Time, java.sql.Timestamp)
- Fixed bug accessing embedded databases
New
- Domain Queries Part 2 (Traversal Expressions) added.
- Mapping of inner classes - Domain Mapping now also supports inner classes
New
- Domain Queries Part 1 (Predicate Expressions) added.
- Mapping of java arrays - Domain Mapping now also supports java arrays
Fixed
- Guaranteed uniqueness of node labels - Domain Mapping: If classes in different packages have the same name (e.g. Person), the label of mapped nodes is guaranteed to be unique.