New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade to Neo4j Ogm 3.1.1 #13999
Comments
|
@georgwittberger we've upgraded to Neo4j 3.1.0 way before that (in 2.0.0.RC2 actually, see #12145) so it looks like something has changed in Spring Data Neo4j maybe? paging @michael-simons for feedback. |
|
@snicoll Thanks for looking into that so quickly, Stéphane. I also assume that there was some change in Spring Data Neo4j version 5.0.9 which causes the incompatibility with Neo4j OGM version 3.1.0. To be more precise how to reproduce: The problem occurs when the query generated by Spring Data has to traverse the object graph for filtering. In my case I query a collection of |
|
We fixed a bug with nested properties in derived finder methods. To keep at least backward compatibility Neo4j OGM introduced an additional API in 3.0.4 and 3.1.1-RC1. These are the versions for Spring Data Neo4j 5.0.9 and 5.1.0-RC1 (Lovelace). |
|
Thanks for the feedback @meistermeier - We can of course upgrade to |
|
Thanks @meistermeier for chiming in and @snicoll for the proposed solution. The fix for nested properties will be in 3.1.1 and 3.0.4, 3.1.1 will be released with SDN Lovelace the latest. @georgwittberger At the moment, we recommend setting the version property as you already did. Sorry for the inconvenience. |
…eries support. SDN supports derived queries over several, deeply nested properties in the following version combinations: - Spring Data Kay SR9 + Neo4j-OGM 3.0.4 - Spring Data Lovelace RC1 + Neo4j-OGM 3.1.1 As of writing, Spring Boot 2.0.4 picks up Spring Data Kay SR9 + Neo4j-OGM 3.1.0. This is an unsupported combination, see spring-projects/spring-boot#13999. This tests asserts the correct versions for Spring Boot 2.1.0+ and 2.0.5+. Also fixes the use of final field relationships in the domain classes used in the test and removed the usage of deprecated API.
…eries support. SDN supports derived queries over several, deeply nested properties in the following version combinations: - Spring Data Kay SR9 + Neo4j-OGM 3.0.4 - Spring Data Lovelace RC1 + Neo4j-OGM 3.1.1 As of writing, Spring Boot 2.0.4 picks up Spring Data Kay SR9 + Neo4j-OGM 3.1.0. This is an unsupported combination, see spring-projects/spring-boot#13999. This tests asserts the correct versions for Spring Boot 2.1.0+ and 2.0.5+. Also fixes the use of final field relationships in the domain classes used in the test and removed the usage of deprecated API.
|
@meistermeier any update about a |
|
The Neo4j-OGM Let me chat with the SD team about this. I am thinking about releasing Side note: 2.0.5 is not in the calendar. Thought there would be more time for us. Edit: Thinking about the release this weekend because of this issue not because I want to 😄 |
|
@meistermeier we're using If using |
|
That is the root problem you brought to the 2.0.0 release party ;) Kay was only meant to work with Neo4j-OGM 3.0.x but I just saw that there is a Neo4j-OGM version definition in SB when it was too late. So currently we are keeping Let me release a stable, non-RC |
This comment has been minimized.
This comment has been minimized.
|
Closing in favour of PR #14132 |
…eries support. SDN supports derived queries over several, deeply nested properties in the following version combinations: - Spring Data Kay SR9 + Neo4j-OGM 3.0.4 - Spring Data Lovelace RC1 + Neo4j-OGM 3.1.1 As of writing, Spring Boot 2.0.4 picks up Spring Data Kay SR9 + Neo4j-OGM 3.1.0. This is an unsupported combination, see spring-projects/spring-boot#13999. This tests asserts the correct versions for Spring Boot 2.1.0+ and 2.0.5+. Also fixes the use of final field relationships in the domain classes used in the test and removed the usage of deprecated API.
SDN supports derived queries over several, deeply nested properties in the following version combinations: - Spring Data Kay SR9 + Neo4j-OGM 3.0.4 - Spring Data Lovelace RC1 + Neo4j-OGM 3.1.1 As of writing, Spring Boot 2.0.4 picks up Spring Data Kay SR9 + Neo4j-OGM 3.1.0. This is an unsupported combination, see spring-projects/spring-boot#13999. This tests asserts the correct versions for Spring Boot 2.1.0+ and 2.0.5+. Also fixes the use of final field relationships in the domain classes used in the test and removed the usage of deprecated API.
|
I faced this problem today, and I have temporarily moved to 3.1.1. Is there any update on newer versions to have this fix? |
|
Boot has already upgraded to 3.1.1 and beyond. IIRC, the latest 2.0.x and 2.1.x releases are using 3.1.5. |
|
@devanshmodi The Spring Boot release 2.0.5 fixed that issue in my case and I was able to remove the OGM version override. Could you please try that version of Spring Boot (or higher)? |
SDN supports derived queries over several, deeply nested properties in the following version combinations: - Spring Data Kay SR9 + Neo4j-OGM 3.0.4 - Spring Data Lovelace RC1 + Neo4j-OGM 3.1.1 As of writing, Spring Boot 2.0.4 picks up Spring Data Kay SR9 + Neo4j-OGM 3.1.0. This is an unsupported combination, see spring-projects/spring-boot#13999. This tests asserts the correct versions for Spring Boot 2.1.0+ and 2.0.5+. Also fixes the use of final field relationships in the domain classes used in the test and removed the usage of deprecated API.
I am reporting a bug which occurred when I upgraded my project from Spring Boot version 2.0.3.RELEASE to version 2.0.4.RELEASE.
I am using Spring Data Neo4j in the project and include the
spring-boot-starter-data-neo4jdependency.Since Spring Boot version 2.0.4 the starter seems to provide Spring Data Neo4j version 5.0.9.RELEASE. The POM of Spring Data Neo4j defines the Neo4j OGM version 3.0.4 to be used, see here: https://github.com/spring-projects/spring-data-neo4j/blob/5.0.9.RELEASE/pom.xml
But the BOM of Spring Boot 2.0.4 defines the Neo4j OGM version 3.1.0, see here: https://github.com/spring-projects/spring-boot/blob/v2.0.4.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml
The really annoying issue here is that this is not only a "formal" mismatch but I encountered a weird runtime error with this new version constellation. When querying a Spring Data repository with a query method like
findByUserId(String userId)I suddenly got the following exception:Looking into the problem I found out that the inner class
NestedPathSegmentexists in the Neo4j OGM version up to 3.0.4, see here: https://github.com/neo4j/neo4j-ogm/blob/v3.0.4/core/src/main/java/org/neo4j/ogm/cypher/Filter.javaBut then it suddenly disappeared in Neo4j OGM version 3.1.0 which is managed by Spring Boot, see here: https://github.com/neo4j/neo4j-ogm/blob/v3.1.0/core/src/main/java/org/neo4j/ogm/cypher/Filter.java
Perhaps this is the reason why Spring Data Neo4j project did not move to that version so far.
I workaround the issue by overriding the Neo4j OGM version to force usage of 3.0.4 at the moment, to be compliant with Spring Data. I do it in
gradle.properties:I am unsure if that issue is correct at your address because also the Neo4j OGM project does not seem to be consistent with their implementation.
The text was updated successfully, but these errors were encountered: