Another Native-Java-DSL for the Cypher Language

647 views
Skip to first unread message

Wolfgang Schuetzelhofer

unread,
May 16, 2014, 9:55:28 AM5/16/14
to ne...@googlegroups.com
Hello everyone,

I am new to this group and I have been working with Neo4j for a few months now.
In this time, out of interest, I have started writing a 'Native Java DSL' (Domain Specific Language) for the Cypher language. You may ask: 'Why yet another one?'.
Well, the main focus of this work is to provide a 'really' fluent Java API to intuitively write and read Java-Cypher expressions.
Almost all API methods either take zero or only one parameter. This makes concatenating methods, thus formulating language expressions really fluent and well supported by completion proposals, which are provided out 

of the box by all major Java IDEs. Besides, we have not stopped developing IDEs or other tools after the first of their kind was available.

I have made my code available on GitHub, together with some documentation. You can find the documentation wiki here: https://github.com/Wolfgang-Schuetzelhofer/jcypher/wiki.
From the wiki, in the chapter 'Getting Started' you are linked to the Git repository and to the releases page.
Please have a look.

Additionaly I have started to develop a plugin for the Eclipse IDE.  It provides some additional support for creating and editing Java-Cypher expressions, currently by extending completion proposals.
This one is also available on GitHub, again the documentation wiki is a good starting point (linking to the repository and the releases): https://github.com/Wolfgang-Schuetzelhofer/jcypher_eclipse/wiki.

I really would appreciate if (hopefully many of) you could have a look at the projects, play around and experiment with the code, and give me some feedback.

Currently the code supports the fluent Java-Cypher API and a mapping to Cypher expressions. Development of a JSON mapping, access to Neo4j databases via REST, and of a query result model is on the way.
I know that right now the usefulness of the code is quite limited, because important features like access to databases and an appropriate result model and API are still missing.
Nevertheless I think it is important to provide access and to gather feedback as early as possible.

Looking forward to hearing from you,
best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
May 26, 2014, 6:50:52 AM5/26/14
to ne...@googlegroups.com
Hello everyone,

Release 0.2.0 of the Java DSL for Cypher (JCypher) is available. Implementation of expressions and their mapping to Cypher is completed.
From there you are linked to the code.

The upcoming Release 0.3.0 will have added a mapper to JSON including automatic extraction of parameters (literals are automatically detected and wherever possible replaced with parameters in order to speed up queries in repeated scenarios).

Best regards,
Wolfgang Schuetzelhofer

Jim Salmons

unread,
May 27, 2014, 11:48:41 AM5/27/14
to ne...@googlegroups.com
Hi Wolfgang,

So many folks are so busy at the moment and with the U.S. Memorial Day holiday, our thoughts have been elsewhere, but all that said, this effort of yours is AWESOME and welcome -- not only is it a great example of "learn by scratching your itch," but you are doing something that has such potential value to others.

And as to having "yet another" Java Native Cypher DSL, the more the merrier because the best ideas from each will affect the others and everyone benefits. Ultimately, there may be a "winner" in terms of most-used, but that only means so much in a "one size does not fit all" world.

I also appreciate that you are taking the extra effort to document and communicate your design intent, etc.

Finally, if I have a wish list -- and I have not yet had a chance to explore your work so I am speaking purely from personal preference -- while an Eclipse plug-in is great, it sure would be "also great" to include an IntelliJ Community Edition plug-in (http://plugins.jetbrains.com/?idea_ce).

Happy-Healthy Vibes,
--Jim--

Wolfgang Schuetzelhofer

unread,
May 28, 2014, 4:39:04 AM5/28/14
to ne...@googlegroups.com
Hi Jim,

thanks for your interest and for your reply.
My main focus currently is on the DSL, which should reach a really useful state with the Milestone Release 1.0.0. Please have a look at:

After that, for a next Milestone, I intent to direct development towards providing access to graph databases at a 'higher level of abstraction' (not just at the level of nodes and relations, ...).
Ideas are currently evolving.

I must admit, that I am not doing much work on the Eclipse pLug-in at the moment (one reaseon is lack of time as I am working on other projects too (to earn some money)).
But the plug-in will evolve over time and if it should prove useful one could also think about an IntelliJ plug-in (though I don't currently have enough experience with IntelliJ).

best regards, hoping to stay in contact,
Wolfgang

Wolfgang Schuetzelhofer

unread,
Jun 2, 2014, 5:30:25 AM6/2/14
to ne...@googlegroups.com
Hello everyone,

Release 0.3.0 of the Java DSL for Cypher (JCypher) is available.
Added to this release now is a Mapper to JSON. 
It also includes automatic extraction of parameters (literals are automatically detected and wherever possible replaced with parameters in order to speed up queries in repeated scenarios)
From there you are linked to the code.

The upcoming Release 0.4.0 will have added access to Neo4j Databases (finally the JCypher queries we have constructed so far can be executed against a graph database).

Best regards,
Wolfgang Schuetzelhofer

Peter Neubauer

unread,
Jun 2, 2014, 5:40:04 AM6/2/14
to Neo4j User

Very cool Wolfgang,
Looks really cool!

/peter

(snt)-[:frm]->(phn)

--
You received this message because you are subscribed to the Google Groups "Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Wolfgang Schuetzelhofer

unread,
Jun 2, 2014, 11:42:55 AM6/2/14
to ne...@googlegroups.com, pe...@mapillary.com
Hi Peter,

thanks for your interest.

best regards,
Wolfgang

Wolfgang Schuetzelhofer

unread,
Jun 11, 2014, 1:01:32 PM6/11/14
to ne...@googlegroups.com
Hello everyone,

while working on the upcoming  release 0.4.0 of JCypher, which is planned for 20.06.2014, I have added a new section called Future Zone to the documentation wiki at GitHub.
This section aims to serve as an incubator for new ideas as they evolve over time.
Ideas about future development directions of JCypher, as well as general ideas about graph databases and how they might influence the way we architect, design, and implement our applications in the future.

I very much would appreciate if you had a look at this section (it will be edited on e regular basis), provide comments, and get involved in a discussion.

Best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jun 16, 2014, 11:15:58 AM6/16/14
to ne...@googlegroups.com
Hello everyone,

Release 0.4.0 of JCypher (a 'Native Java DSL' for Cypher) is available.
From there you are linked to the code.

New in this release: Access to Neo4j databases (finally the JCypher queries we have constructed so far can be executed against a graph database).
You can access Neo4j databases in a uniform way, no matter if you access a remote database, an embedded database, or an in-memory database.

Feature overview:
- Fluent API to formulate JCypher expressions. 
- Mapper from JCypher to Cypher. 
- Mapper to JSON. 
- Access to Neo4j databases.

The upcoming Release 1.0.0 will have added a result model and API to easily and comfortably operate on query results.
Additionally, JCypher will be partitioned into three projects. A JCypher main project and two sub-projects. The two sub-projects will contain classes and dependencies for accessing remote databases on the one hand and for accessing embedded and in-memory databases on the other hand. This will enable to import only those classes and dependencies which are needed for a specific type of database access.


Best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jul 3, 2014, 9:12:34 AM7/3/14
to ne...@googlegroups.com
Hello everyone,

The scope of JCypher has been expanded !!!
Based on ideas outlined on the Future Zone page of the dokumentation wiki, the content for a JCypher Release 2.0.0 has been roughly scoped.
This expands the overall scope and goals for JCypher. Please have a look at the dokumentation wiki.
Note: This will not affect the upcoming Release 1.0.0.

Best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jul 28, 2014, 7:41:16 AM7/28/14
to ne...@googlegroups.com
Hello everyone,

I am sorry to announce that Release 1.0.0 of JCypher will be delayed by two weeks.
So the new release date will be 11.08.2014.
The delay is due to vacation and to some urgent work on other projects.
I don't want to sacrifice quality of code or feature completeness in order to hold a planned release date, All the more as the delay is relatively short.
Therefore I have decided to postpone the release date by two weeks.

Best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Aug 11, 2014, 9:59:24 AM8/11/14
to ne...@googlegroups.com
Hello everyone,

Release 1.0.0 of JCypher is available.
From there you are linked to the code.

New in this release: A graph model as result model of queries. The model can easily be navigated and modified.
Modifications, including newly created nodes and relations can be applied to the underlying database.

Feature overview:
- Fluent API to formulate JCypher expressions. 
- Mapper from JCypher to Cypher. 
- Mapper to JSON. 
- Access to Neo4j databases.
- Graph model as query result model

Best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Aug 28, 2014, 6:50:38 AM8/28/14
to ne...@googlegroups.com
Hello everyone,

JCypher is now on Maven Central !
JCypher binaries and sources are now available on maven central (http://search.maven.org/, search for 'jcypher').
You can simply add the dependencies to JCypher to your project's pom.xml (in case you build your project with maven).

To reduce dependencies (if you don't need remote and embedded and in_memory database access at the same time, you won't need all implicitly imported dependencies)

The scope for JCypher release 1.1.0, upcoming in 09.2014 is now clearly defined.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Sep 23, 2014, 8:07:40 AM9/23/14
to ne...@googlegroups.com
Hello everyone,

The JCypher documentation wiki has been recently updated. Please have a look at: https://github.com/Wolfgang-Schuetzelhofer/jcypher/wiki.
The pages: 'Home', 'Outlook (Roadmap)', 'Future Zone', and 'Future Zone Continued' have modified and extended content.

The release date of JCypher 1.1.0 will be second half of October. Release 1.1.0 will provide a default generic mapping of complex
Java object graphs to Neo4J graph databases. No additional configuration is needed, you can store and retrieve Java object graphs in a straight forward way.
The code for the release is mostly there, except for some minor refactorings, some enhancements in mapping lists and maps, some additional unit tests,
and a hopefully illustrative example.
I will not be in the office from end of September to mid of October, hence the new release date.

On the pages 'Outlook (Roadmap)' and 'Future Zone Continued' of the documentation wiki: https://github.com/Wolfgang-Schuetzelhofer/jcypher/wiki,
you will find information about the contents of the next release of JCypher: 1.2.0.
 
best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Oct 31, 2014, 8:35:30 AM10/31/14
to ne...@googlegroups.com
Hello everyone,

The release naming strategy for JCypher has now been defined more precisely.

Format: n1.n2.n3
With n1, n2, n3 integer values such that: n1 ... major release number, n2 ... minor release number, n3 ... fix release number.
n1 changes when new major features are added.
n2 changes when existing features are enhanced or minor features are added.
n3 changes when problem- or bug fixes are added.

So the next release will now be 2.0.0, as a major feature, mapping of complex business domains to Neo4J graphs, is added.
Release 2.0.0 is now finally scheduled for monday, 17.11.2014.

The reason for the delay is me having simply underestimated the complexity and the required effort to implement such a mapping and the huge number of different scenarios you have to deal with.
But I think the result of this effort will be really useful and is a major step in the development of JCypher.


best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Nov 17, 2014, 5:13:15 AM11/17/14
to ne...@googlegroups.com
Hello everyone,

JCypher 2.0.0 is released !
Since its start as a 'Native Java DSL' (Domain Specific Language) for the Cypher language, JCypher has undergone quite a development.

JCypher is now a library which provides Java access to Neo4J databases at multiple levels of abstraction.
  • At the bottom level a 'Native Java DSL' in form of a fluent Java API allows to intuitively and comfortably formulate queries against graph databases. The DSL (Domain Specific Language) is based on the CYPHER language. Hence the name JCypher. (The Cypher Language is developed as part of the Neo4J Graph Database by 'Neo Technology'). The DSL provides all the power and expressiveness of the Cypher language.

  • At the next level of abstraction, access to graph databases is provided based on a generic graph model. The model consists of nodes, relations, and paths, together with properties, labels, and types. While simple, the model allows to easily navigate and manipulate graphs.

  • At the top level, arbitrarily complex business domains can be mapped to graph databases in a completely non-invasive way (not even annotations invading the business model).

  • At this level 'Domain Queries' provide the power and expressiveness of queries on a graph database, while being formulated on domain objects or on types of domain objects respectively.

  • Additionally, JCypher provides database access in a uniform way to remote as well as to embedded databases (including in-memory databases).

Release 2.0.0 includes all upper mentioned features except 'Domain Queries'. Domain Queries are currently under development.
Release 2.1.0 will provide a first preview of 'Domain Queries', not the fully-fledged 'Domain Query Language'.
The 'Domain Query Language' will be developed and released step by step in the upcoming releases 2.x.

Also the documentation wiki has been heavily restructured.
Additionally there is now a distinct samples project for JCypher.

best regards
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Dec 1, 2014, 9:08:37 AM12/1/14
to ne...@googlegroups.com
Hello everybody,

I have added an architectural overview to the documentation.
Please have a look at the documentation wiki here.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Dec 16, 2014, 9:26:01 AM12/16/14
to ne...@googlegroups.com
Hi everybody,

JCypher release 2.1.0 is now available (earlier than expected).
It contains Domain Queries Part 1 (Predicate Expressions). The first time you get a look at Domain Queries and how they work.

Note: Domain Queries are currently under development and will be expanded step by step over the next few releases of JCypher.
Please have a look at the documentation wiki (from there you are linked to the code).

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jan 23, 2015, 10:04:57 AM1/23/15
to ne...@googlegroups.com
Hi everybody,

JCypher release 2.2.0 is now available (earlier than expected).
It contains Domain Queries Part 2 (Predicate Expressions).

Note: Domain Queries are currently under development and will be expanded step by step over the next few releases of JCypher.
Please have a look at the documentation wiki (from there you are linked to the code).

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jan 23, 2015, 10:12:45 AM1/23/15
to ne...@googlegroups.com
Hi everybody,

I have to correct: JCypher release 2.2.0 contains Domain Queries Part 2 (Traversal Expressions).

Details in the documentation wiki.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Feb 28, 2015, 9:12:30 AM2/28/15
to ne...@googlegroups.com
Hi everybody,

JCypher has now a Project Homepage at: http://jcypher.iot-solutions.net/.
Release 2.3.0 of JCypher will be delayed by approximately two weeks.
The new release date is March 16th 2015.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Mar 16, 2015, 10:18:48 AM3/16/15
to ne...@googlegroups.com
Hi everybody,

JCypher 2.3.0 has been released.
Please have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

New in release 2.3.0: Domain Queries - Collection Expressions.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
May 4, 2015, 8:57:20 AM5/4/15
to ne...@googlegroups.com
Hi everybody,

JCypher 2.4.0 has been released.
Please have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

New in release 2.4.0: Domain Queries - Collection Expressions UNION and INTERSECTION.
Improved support for multiple domains in a single database.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jun 8, 2015, 9:28:47 AM6/8/15
to ne...@googlegroups.com
Hi everybody,

JCypher 2.5.0 has been released.
Please have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

New in release 2.5.0: Domain Query Concatenation. It allows to use results of one query as starting points in subsequent queries,
thus providing to reduce query complexity

Finally up and running is my homepage, or the homepage of my company respectively, at: http://www.iot-solutions.net.
You are sincerely invited to visit the page.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jul 6, 2015, 9:10:34 AM7/6/15
to ne...@googlegroups.com
Hi everybody,

JCypher 2.6.0 has been released.
Please have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

Release 2.6.0 works with Neo4j 2.2.2 and supports basic authentication and authorization.

best regards,
Wolfgang Schuetzelhofer

Tracy Michelle

unread,
Jul 9, 2015, 6:14:27 PM7/9/15
to ne...@googlegroups.com
Hi Wolfgang,

I'm a newbie to the group and Neo4j.  I just wanted to say that I'm starting to look through your docs for jcypher and I am amazed at the amount of dedication and work in the high level architectural diagram alone.  From the heart of a newbie...thank you sooooo much for the time you have taken to put together your documentation.

Tracy

Wolfgang Schuetzelhofer

unread,
Jul 10, 2015, 3:16:51 AM7/10/15
to ne...@googlegroups.com
Hi Tracy,
I'm glad that you take a look at jcypher. If you need any help or additional information, please don't hesitate to contact me.
During the next two weeks my answer might take some time because I'm on a sailing trip in the mediterranean.

best regards,
Wolfgang

--
You received this message because you are subscribed to a topic in the Google Groups "Neo4j" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/neo4j/-gVYsTmLoro/unsubscribe.
To unsubscribe from this group and all its topics, send an email to neo4j+un...@googlegroups.com.

Wolfgang Schuetzelhofer

unread,
Aug 24, 2015, 11:45:41 AM8/24/15
to Neo4j
Hi everybody,

JCypher 2.7.0 has been released.
New in this release is a transaction API.
A distinct page in the wiki documents the usage of the API.

In addition,
please have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

Release 2.7.0 works with Neo4j 2.2.2 and supports basic authentication and authorization.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Sep 29, 2015, 7:14:40 AM9/29/15
to Neo4j
Hi everybody,

JCypher 2.7.1 containing some fixes has been released.
You can find details in the release notes
Please also have a look at the project homepage: http://jcypher.iot-solutions.net/.
Or go directly to the documentation wiki.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Oct 23, 2015, 6:13:41 AM10/23/15
to Neo4j
Hi everybody,

JCypher 3.0.0 has been released. Please be patient, it may take a couple of hours until the release is visible on maven central.
New in this release is a Generic Domain Model, allowing you to work with a Domain Graph even if you don't have the appropriate Java Model Classes at hand (on your classpath).
You find details in the documentation at Generic Domain Model.

In addition the documentation now has a distinct Table of Contents

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Nov 30, 2015, 11:47:03 AM11/30/15
to Neo4j
Hi everybody,

Sorry, but JCypher 3.1.0 is delayed. JCypher 3.1.0 will provide concurrency support, a big step towards industrial strength.
As it turned out, providing sound and stable concurrency support takes more effort than initially estimated. This, together with work
I have to do on other projects, leads to the aforementioned delay.
JCypher 3.1.0 will be released by end of December this year (a delay of approximately one month).

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Dec 30, 2015, 11:23:28 AM12/30/15
to Neo4j
Hi everybody,

JCypher 3.1.0 has been released.
New in this release is concurrency support by means of optimistic locking.
You find details in the documentation at Concurrency Support.

You may start at JCypher's Project Home Page

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Jan 29, 2016, 5:23:41 AM1/29/16
to Neo4j
Hi everybody,

JCypher 3.2.0 has been released.
To see what's new in this release, please have a look at the release notes.
For a complete overview you may start at JCypher's Project Home Page

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Feb 1, 2016, 7:42:39 AM2/1/16
to Neo4j
Hi everybody,

here are some additional infos about JCypher release 3.2.0:

New in this release:
  • 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
You may also want to have a look at the release notes.
If you are interested about what will be in the next release, please have a look at Outlook (Roadmap).
There is also a page outlining ideas for future development directions of JCypher: Future Zone.
For a complete overview please start at JCypher's Project Home Page.

best regards,
Wolfgang Schuetzelhofer

Wolfgang Schuetzelhofer

unread,
Mar 23, 2016, 11:12:22 AM3/23/16
to Neo4j
Hi everybody,

JCypher 3.3.0 has been released.

New in this release:
  • Query DSL - DETACH DELETE now supported.
  • JSON Facade in preparation to access JCypher from other, possibly remote, systems.
Release cycles have slowed down a bit, this is because I am working on a new project 'JCypher-Server' in parallel.
JCypher-Server will provide a server-side implementation of JCypher, offering RESTful services and a browser based web UI.
The web UI will allow to explore domain models, domain graphs, and it will support creation and execution of domain queries.
All in an intuitive and graphical way.
New requirements for JCypher are currently mainly driven by this new project 'JCypher-Server'.
I expect a first preview release of JCypher-Server, with a limited (far from complete) set of features, to be published sometimes in April this year.
JCypher-Server is beginning to look really interesting, please stay tuned.

For what's new in JCypher,
you may also want to have a look at the release notes.
If you are interested about what will be in the next release(s), please have a look at Outlook (Roadmap).

Wolfgang Schuetzelhofer

unread,
Apr 4, 2016, 6:40:48 AM4/4/16
to Neo4j
Hi everybody,

JCypher 3.3.1 has been released. This is a fixes release

Fixed in this release:
  • Illegal use of parameter-sets with MERGE, now using simple parameters.
  • Added support for all Collection sub classes in domain model.

Wolfgang Schuetzelhofer

unread,
May 30, 2016, 7:39:29 AM5/30/16
to Neo4j
Hi everybody,

JCypher 3.4.0 has been released.

New in this release:
  • Store / retrieve Domain Queries to / from the graph db.
  • JcQueryParameter to be used with Query DSL expressions.
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.

Wolfgang Schuetzelhofer

unread,
Aug 30, 2016, 12:21:16 PM8/30/16
to Neo4j
Hi everybody,

JCypher 3.5.0 has been released.

New in this release:
  • Support for Neo4J 3.0.X and the BOLT protocol.

Wolfgang Schuetzelhofer

unread,
Oct 31, 2016, 8:52:17 AM10/31/16
to Neo4j
Hi everybody,

JCypher 3.6.0 has been released.

New in this release:
  • 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 ).

Wolfgang Schuetzelhofer

unread,
Feb 24, 2017, 8:40:44 AM2/24/17
to Neo4j
Hi everybody,

JCypher 3.7.0 has been released.

New in this release:
  • Support for Neo4j 3.1.1.
  • Extended Authentication when using BOLT
For what's new in JCypher,
you may also want to have a look at the release notes.
If you are interested about what will be in the next release(s), please have a look at Outlook (Roadmap).

Wolfgang Schuetzelhofer

unread,
Jul 31, 2017, 1:37:26 PM7/31/17
to Neo4j
Hi everybody,

JCypher 3.8.0 has been released.

New in this release:
  • 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.

Wolfgang Schuetzelhofer

unread,
Jul 31, 2017, 1:38:08 PM7/31/17
to Neo4j

suresh bojjam

unread,
Nov 19, 2017, 12:47:56 AM11/19/17
to Neo4j
Hi Wolfgang Schuetzelhofer,

I am trying to explore  JCypher with layer "JCypher-Query-DSL".
How can we get the newly created Node id from JCypher? please look at the below is the snippet.

query1.setClauses(new IClause[] {
MERGE.node(user)
.property("NAME").value("Suresh")
.property("MYID").value("123")
.label("User")
//.relation().property("NAME").value("Access").out().node(table)
});
                
                JcQueryResult result=executeQuery(query1);
if(result!=null) {
ObjectMapper mapper=new ObjectMapper();
System.out.println("result: "+mapper.writeValueAsString(result));
}else{
System.out.println("Null Result");
}
                JcNumber id=user.id().asNumber();
System.out.println("user.id(): "+id.asString());

thanks,
suresh

Wolfgang Schuetzelhofer

unread,
Nov 20, 2017, 2:55:33 AM11/20/17
to ne...@googlegroups.com
Hi Suresh Bojjam,

the following code snippet should work:

IClause[] clauses;
JcQuery query;
String cypher;
JcNode user = new JcNode("user");
JcNumber id = new JcNumber("_id");
clauses = new IClause[]{
MERGE.node(user)
.property("NAME").value("Suresh")
.property("MYID").value("123")
.label("User"),
RETURN.value(user.id()).AS(id)
};
query = new JcQuery();
query.setClauses(clauses);
BigDecimal idResult = null;
JcQueryResult result = dbAccess.execute(query);
if (!result.hasErrors()) {
idResult = result.resultOf(id).get(0);
}

best regards,
Wolfgang

--
You received this message because you are subscribed to a topic in the Google Groups "Neo4j" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/neo4j/-gVYsTmLoro/unsubscribe.
To unsubscribe from this group and all its topics, send an email to neo4j+unsubscribe@googlegroups.com.

Wolfgang Schuetzelhofer

unread,
Dec 22, 2017, 6:32:51 AM12/22/17
to Neo4j
Hi everybody,

JCypher 3.9.0 has been released.

New in this release:
  • Support for Neo4j 3.3.1.
  • Set planner strategy globally or individually on a per query basis

Wolfgang Schuetzelhofer

unread,
Aug 3, 2018, 7:28:11 AM8/3/18
to Neo4j
Hi everybody,

JCypher 4.0.0 has been released.

New in this release:
  • Support for Neo4j 3.4.1.

Wolfgang Schuetzelhofer

unread,
Sep 1, 2018, 4:40:20 AM9/1/18
to Neo4j
Hi everybody,

JCypher 4.0.1 has been released.

This is a bugfix release. What is fixed (changed):
  • 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.

Analista de Sistemas Web/Mobile

unread,
Sep 1, 2018, 8:26:35 PM9/1/18
to ne...@googlegroups.com
tanks..

--
You received this message because you are subscribed to the Google Groups "Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+un...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
JOSÉ RIBAMAR FERREIRA JUNIOR
          ANALISTA DE SISTEMAS
                    Joinville - SC
                   (47) 9844-23634
                   (47) 3436-4774

Wolfgang Schuetzelhofer

unread,
Sep 24, 2018, 8:56:26 AM9/24/18
to Neo4j
Hi everybody,

JCypher 4.1.0 has been released.

New in this release:
  • 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"))

Wolfgang Schuetzelhofer

unread,
Nov 7, 2018, 4:34:31 AM11/7/18
to Neo4j
Hi everybody,

JCypher 4.1.1 has been released.

This is a bugfix release. What is fixed:
  • Issue with labels retrieval when using AbstractEmbeddedDBAccess and forcing PlannerStrategy.COST.

Wolfgang Schuetzelhofer

unread,
Feb 28, 2019, 8:15:38 AM2/28/19
to Neo4j
Hi everybody,

JCypher 4.2.0 has been released.

New in this release:
  • Support for Neo4j 3.5.x has been added (that required some adaptations for in-memory databases).
Reply all
Reply to author
Forward
0 new messages