Question

I believe this question has been asked here for a while but there wasn't any accepted response. I've actually tried various tutorials but not getting them. I have a multi modules maven project. SO i have dependency-management and plugin-management in the parent project. the poms look like below:

<!--parent ${querydsl.version} = 2.3.2-->
 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <!--                        <fork>true</fork>
                    -->                        
                    <meminitial>128m</meminitial>
                    <maxmem>512m</maxmem>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.3</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>

            <plugin>
            <groupId>com.mysema.maven</groupId>
            <artifactId>maven-apt-plugin</artifactId>
            <version>1.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
<dependencyManagment>
    <dependencies>
     <!-- Querydsl -->
        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-core</artifactId>
            <version>${querydsl.version}</version>
        </dependency>

        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>${querydsl.version}</version>
        </dependency>

        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
            <version>${querydsl.version}</version>
        </dependency>

        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-mongodb</artifactId>
            <version>${querydsl.version}</version>
        </dependency>
        <!-- End Querydsl -->
    </dependencies>
</dependencyManagment>

I have in the db mobule both jpa and mongo, both in separate packages.But i only wish to use query dsl for mongodb. the db module pom looks like below:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

                <plugin>
                    <groupId>com.mysema.maven</groupId>
                    <artifactId>maven-apt-plugin</artifactId>
                    <version>1.0.2</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${generatedSources}</outputDirectory>
                                 <processor>com.mysema.query.mongodb.morphia.MorphiaAnnotationProcessor</processor>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>


    </plugins>
</build>
<dependencies>
    <!-- Querydsl -->
       <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-core</artifactId>
        </dependency>

        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
        </dependency>

    <dependency>
        <groupId>com.mysema.querydsl</groupId>
        <artifactId>querydsl-mongodb</artifactId>
    </dependency>
    <!-- End Querydsl -->
</dependencies>

I'm using spring data framework 3.1 with its @Document annotation on the mongo entities. I also use MongoRepository so am wondering if i should so something else before getting the classes Geneated.

thanks for reading

Was it helpful?

Solution

com.mysema.query.mongodb.morphia.MorphiaAnnotationProcessor is meant to be used with Morphia annotated classes. For @Document annotated classes use org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top