querydsl/querydsl-jdo
2014-09-24 21:24:36 +03:00
..
doc/specs 2010-09-18 15:36:24 +00:00
src More javadoc fixes 2014-09-24 21:24:36 +03:00
pom.xml Bump version 2014-08-31 16:32:02 +03:00
README.md Format readmes 2014-03-24 10:12:56 +02:00

Querydsl JDO

The JDO module provides integration with the JDO API.

Maven integration

Add the following dependencies to your Maven project :

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

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.6.1</version>
</dependency>    

And now, configure the Maven APT plugin which generates the query types used by Querydsl :

<plugin>
  <groupId>com.mysema.maven</groupId>
  <artifactId>apt-maven-plugin</artifactId>
  <version>1.0.6</version>
  <executions>
    <execution>
      <goals>
        <goal>process</goal>
      </goals>
      <configuration>
        <outputDirectory>target/generated-sources/java</outputDirectory>
        <processor>com.mysema.query.apt.jdo.JDOAnnotationProcessor</processor>
      </configuration>
    </execution>
  </executions>
</plugin>

The JDOAnnotationProcessor finds domain types annotated with the javax.jdo.annotations.PersistenceCapable annotation and generates Querydsl query types for them.

Run clean install and you will get your Query types generated into target/generated-sources/java.

If you use Eclipse, run mvn eclipse:eclipse to update your Eclipse project to include target/generated-sources/java as a source folder.

Now you are able to construct JDOQL query instances and instances of the query domain model.

Querying

Querying with Querydsl JDO is as simple as this :

QCustomer customer = QCustomer.customer;
JDOQuery query = new JDOQuery(pm);
Customer bob = query.from(customer)
  .where(customer.firstName.eq("Bob"))
  .uniqueResult(customer);
query.close();

For more information on the Querydsl JDO module visit the reference documentation http://www.querydsl.com/static/querydsl/latest/reference/html/ch02s02.html