From 7f6a6094e6d01b81f0cd1a4a499f07aad6313ab4 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 3 May 2011 10:34:04 +0200 Subject: [PATCH] DATADOC-115 - Upgraded to Querydsl 2.2.0-beta4. Enabled treatment of not annotated classes as embedded documents to let Querydsl create query classes for them. Annotated BasePerson with @QuerySupertype as Querydsl seems to need this annotation to create the query class for super types in the 2.2 branch. That issue is tracked in https://bugs.launchpad.net/querydsl/+bug/776219 so that we should be able to remove the annotation as soon as this one is fixed. --- spring-data-mongodb/pom.xml | 9 +++++---- .../mongodb/repository/MongoAnnotationProcessor.java | 1 + .../data/document/mongodb/mapping/BasePerson.java | 7 +++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index c3e99515b..0074732ed 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -14,6 +14,7 @@ 2.4 + 2.2.0-beta4 @@ -65,7 +66,7 @@ com.mysema.querydsl querydsl-mongodb - 2.1.1 + ${querydsl.version} true @@ -78,7 +79,7 @@ com.mysema.querydsl querydsl-apt - 2.1.1 + ${querydsl.version} provided @@ -161,7 +162,7 @@ com.mysema.maven maven-apt-plugin - 1.0 + 1.0.1 generate-test-sources @@ -169,7 +170,7 @@ test-process - target/generated-sources/test-annotations + target/generated-test-sources org.springframework.data.document.mongodb.repository.MongoAnnotationProcessor diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoAnnotationProcessor.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoAnnotationProcessor.java index 5575be4b9..35b313430 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoAnnotationProcessor.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoAnnotationProcessor.java @@ -56,6 +56,7 @@ public class MongoAnnotationProcessor extends AbstractProcessor { DefaultConfiguration configuration = new DefaultConfiguration(roundEnv, processingEnv.getOptions(), Collections. emptySet(), QueryEntities.class, Document.class, QuerySupertype.class, QueryEmbeddable.class, QueryEmbedded.class, QueryTransient.class); + configuration.setUnknownAsEmbedded(true); Processor processor = new Processor(processingEnv, roundEnv, configuration); processor.process(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java index 85be5593d..285790a39 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/BasePerson.java @@ -16,9 +16,16 @@ package org.springframework.data.document.mongodb.mapping; +import com.mysema.query.annotations.QuerySupertype; + /** + * {@link QuerySupertype} is necessary for Querydsl 2.2.0-beta4 to compile the query classes directly. Can be removed as + * soon as {@link https://bugs.launchpad.net/querydsl/+bug/776219} is fixed. + * + * @see https://bugs.launchpad.net/querydsl/+bug/776219 * @author Jon Brisbin */ +@QuerySupertype public abstract class BasePerson { protected Integer ssn;