From 4b098cc74c85dc6dddfdc305802e4ace1246a9ab Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Wed, 30 Jan 2013 02:34:38 +0100 Subject: [PATCH] DATAGRAPH-329 Upgrade to Neo4j 1.8.1 --- .../cineasts-aspects/pom.xml | 2 +- spring-data-neo4j-examples/cineasts-rest/pom.xml | 4 ++-- spring-data-neo4j-examples/cineasts/pom.xml | 2 +- .../myrestaurants-social/pom.xml | 2 +- spring-data-neo4j-examples/todos/pom.xml | 2 +- spring-data-neo4j-parent/pom.xml | 6 +++--- .../neo4j/repository/AbstractGraphRepository.java | 15 +-------------- .../neo4j/repository/query/QueryTemplates.java | 2 +- .../data/neo4j/repository/PersonRepository.java | 4 ++-- .../query/CypherQueryBuilderUnitTests.java | 6 +++--- .../repository/query/DerivedFinderMethodTest.java | 2 +- src/docbkx/tutorial/neo4j.xml | 2 +- 12 files changed, 18 insertions(+), 31 deletions(-) diff --git a/spring-data-neo4j-examples/cineasts-aspects/pom.xml b/spring-data-neo4j-examples/cineasts-aspects/pom.xml index bfe5ac3db..9b1a1ba2f 100644 --- a/spring-data-neo4j-examples/cineasts-aspects/pom.xml +++ b/spring-data-neo4j-examples/cineasts-aspects/pom.xml @@ -13,7 +13,7 @@ UTF-8 3.1.0.RELEASE 1.6.1 - 1.8 + 1.8.1 ${project.version} 1.6.12 diff --git a/spring-data-neo4j-examples/cineasts-rest/pom.xml b/spring-data-neo4j-examples/cineasts-rest/pom.xml index a508675dc..ded902b30 100644 --- a/spring-data-neo4j-examples/cineasts-rest/pom.xml +++ b/spring-data-neo4j-examples/cineasts-rest/pom.xml @@ -4,7 +4,7 @@ org.neo4j cineasts-rest - 2.1.0.BUILD-SNAPSHOT + 2.2.0.BUILD-SNAPSHOT war Cineasts over REST @@ -13,7 +13,7 @@ UTF-8 3.1.0.RELEASE 1.6.1 - 1.8 + 1.8.1 ${project.version} 1.6.12 1.4 diff --git a/spring-data-neo4j-examples/cineasts/pom.xml b/spring-data-neo4j-examples/cineasts/pom.xml index 414bd68a7..0ce2e0965 100644 --- a/spring-data-neo4j-examples/cineasts/pom.xml +++ b/spring-data-neo4j-examples/cineasts/pom.xml @@ -15,7 +15,7 @@ 1.6.1 ${project.version} 1.6.12 - 1.8.RC1 + 1.8.1 diff --git a/spring-data-neo4j-examples/myrestaurants-social/pom.xml b/spring-data-neo4j-examples/myrestaurants-social/pom.xml index b5380f02d..edf572ef6 100644 --- a/spring-data-neo4j-examples/myrestaurants-social/pom.xml +++ b/spring-data-neo4j-examples/myrestaurants-social/pom.xml @@ -11,7 +11,7 @@ ${project.version} 1.6.12 1.6.1 - 1.8 + 1.8.1 UTF-8 3.1.0.RELEASE diff --git a/spring-data-neo4j-examples/todos/pom.xml b/spring-data-neo4j-examples/todos/pom.xml index 500ff6a20..06214d02f 100644 --- a/spring-data-neo4j-examples/todos/pom.xml +++ b/spring-data-neo4j-examples/todos/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.8 + 1.8.1 3.1.0.RELEASE ${project.version} 1.6.12 diff --git a/spring-data-neo4j-parent/pom.xml b/spring-data-neo4j-parent/pom.xml index d3c275099..a2f74e14d 100644 --- a/spring-data-neo4j-parent/pom.xml +++ b/spring-data-neo4j-parent/pom.xml @@ -125,8 +125,8 @@ 3.0.7.RELEASE 3.1.2.RELEASE 1.5.0.BUILD-SNAPSHOT - 1.8 - 0.9 + 1.8.1 + 0.10-SNAPSHOT 1.6.12 1.2 1.5 @@ -470,7 +470,7 @@ org.neo4j neo4j-cypher-dsl - ${neo4j.version} + 1.8 org.neo4j diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/AbstractGraphRepository.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/AbstractGraphRepository.java index fe06e3188..02e6b787f 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/AbstractGraphRepository.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/AbstractGraphRepository.java @@ -80,7 +80,7 @@ public abstract class AbstractGraphRepository im private Result geoQuery(String indexName, String geoQuery, Object params) { final IndexHits indexHits = getIndex(indexName,null).query(geoQuery, params); - return template.convert(new GeoNodeIndexHitsWrapper(indexHits)); + return template.convert(new IndexHitsWrapper(indexHits)); } public static final ClosableIterable EMPTY_CLOSABLE_ITERABLE = new ClosableIterable() { @@ -433,19 +433,6 @@ public abstract class AbstractGraphRepository im } } - private class GeoNodeIndexHitsWrapper extends IndexHitsWrapper { - public GeoNodeIndexHitsWrapper(IndexHits indexHits) { - super(indexHits); - } - - @Override - protected T underlyingObjectToObject(S result) { - final Number objectNodeId = (Number) result.getProperty("id"); - if (objectNodeId==null) return null; - return super.underlyingObjectToObject(getById(objectNodeId.longValue())); - } - } - @SuppressWarnings("unchecked") @Override public Page query(Execute query, Execute countQuery, Map params, Pageable page) { diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/query/QueryTemplates.java b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/query/QueryTemplates.java index 07a7ebdc1..6bfb64cca 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/query/QueryTemplates.java +++ b/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/repository/query/QueryTemplates.java @@ -51,7 +51,7 @@ public abstract class QueryTemplates { static final String START_CLAUSE_INDEX_LOOKUP = "`%s`=node:`%s`(`%s`=" + PLACEHOLDER + ")"; static final String START_CLAUSE_INDEX_QUERY = "`%s`=node:`%s`(" + PLACEHOLDER + ")"; static final String WHERE_CLAUSE_1 = "`%1$s`.`%2$s`! %3$s {%4$d}"; - static final String WHERE_TYPE_CHECK = "`%s`.__type__! IN [%s]"; + static final String WHERE_TYPE_CHECK = "(has(`%1$s`.__type__) AND `%1$s`.__type__ IN [%2$s])"; static final String WHERE_CLAUSE_0 = "`%1$s`.`%2$s`! %3$s "; static final String SORT_CLAUSE = "%s %s"; static final String ORDER_BY_CLAUSE = " ORDER BY %s"; diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java index 95d0e05fb..b1033787c 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/PersonRepository.java @@ -63,10 +63,10 @@ public interface PersonRepository extends GraphRepository, NamedIndexRep @Query("start person=node({p_person}) match (boss)-[:boss]->(person) return boss") Person findBoss(@Param("p_person") Long person); - @Query("start boss=node({0}) match (boss)-[:boss]->(person) return person order by count(*)") + @Query("start boss=node({0}) match (boss)-[:boss]->(person) with person, count(*) as cnt order by cnt return person") Page findSubordinates(Person boss,Pageable page); - @Query(value = "start boss=node({0}) match (boss)-[:boss]->(person) return person order by count(*)",countQuery = "start boss=node({0}) match (boss)-[:boss]->(person) with person return count(*)") + @Query(value = "start boss=node({0}) match (boss)-[:boss]->(person) with person, count(*) as cnt order by cnt return person",countQuery = "start boss=node({0}) match (boss)-[:boss]->(person) with person return count(*)") Page findSubordinatesWithCount(Person boss,Pageable page); Group findTeam(@Param("p_person") Person person); diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/CypherQueryBuilderUnitTests.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/CypherQueryBuilderUnitTests.java index b9d9e36cb..55af7ba9f 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/CypherQueryBuilderUnitTests.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/CypherQueryBuilderUnitTests.java @@ -126,7 +126,7 @@ public class CypherQueryBuilderUnitTests { @Test public void createsSimpleTraversalClauseCorrectly() { query.addRestriction(new Part("group", Person.class)); - assertThat(query.toString(), is("START `person_group`=node({0}) MATCH `person`<-[:`members`]-`person_group` WHERE `person`.__type__! IN ['Person'] RETURN `person`")); + assertThat(query.toString(), is("START `person_group`=node({0}) MATCH `person`<-[:`members`]-`person_group` WHERE (has(`person`.__type__) AND `person`.__type__ IN ['Person']) RETURN `person`")); } @Test @@ -168,13 +168,13 @@ public class CypherQueryBuilderUnitTests { public void shouldFindByNodeEntity() throws Exception { query.addRestriction(new Part("pet", Person.class)); - assertThat(query.toString(), is("START `person_pet`=node({0}) MATCH `person`-[:`owns`]->`person_pet` WHERE `person`.__type__! IN ['Person'] RETURN `person`")); + assertThat(query.toString(), is("START `person_pet`=node({0}) MATCH `person`-[:`owns`]->`person_pet` WHERE (has(`person`.__type__) AND `person`.__type__ IN ['Person']) RETURN `person`")); } @Test public void shouldFindByNodeEntityForIncomingRelationship() { query.addRestriction(new Part("group", Person.class)); - assertThat(query.toString(), is("START `person_group`=node({0}) MATCH `person`<-[:`members`]-`person_group` WHERE `person`.__type__! IN ['Person'] RETURN `person`")); + assertThat(query.toString(), is("START `person_group`=node({0}) MATCH `person`<-[:`members`]-`person_group` WHERE (has(`person`.__type__) AND `person`.__type__ IN ['Person']) RETURN `person`")); } } diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/DerivedFinderMethodTest.java b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/DerivedFinderMethodTest.java index bcedf6ed4..4b47347db 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/DerivedFinderMethodTest.java +++ b/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/repository/query/DerivedFinderMethodTest.java @@ -111,7 +111,7 @@ public class DerivedFinderMethodTest { @Test public void testQueryWithEntityGraphId() throws Exception { assertRepositoryQueryMethod(ThingRepository.class, "findByOwnerId",new Object[]{123}, - "START `thing_owner`=node({0}) MATCH `thing`-[:`owner`]->`thing_owner` WHERE `thing`.__type__! IN ['org.springframework.data.neo4j.repository.query.DerivedFinderMethodTest$Thing'] ", + "START `thing_owner`=node({0}) MATCH `thing`-[:`owner`]->`thing_owner` WHERE (has(`thing`.__type__) AND `thing`.__type__ IN ['org.springframework.data.neo4j.repository.query.DerivedFinderMethodTest$Thing']) ", 123); } diff --git a/src/docbkx/tutorial/neo4j.xml b/src/docbkx/tutorial/neo4j.xml index bbbcb44f0..d69aadbb3 100644 --- a/src/docbkx/tutorial/neo4j.xml +++ b/src/docbkx/tutorial/neo4j.xml @@ -40,7 +40,7 @@ org.neo4j neo4j - 1.8 + 1.8.1 ]]>