2016-03-22 5 views
1

Ich habe den folgenden Code:QueryDSL uniqueResult() ist nicht definiert

import com.querydsl.jpa.impl.JPAQuery; 
... 
QCustomer customer = QCustomer.customer; 
JPAQuery query = new JPAQuery(entityManager); 

Customer result = query.from(customer) 
        .where(customer.firstName.eq("Bob")) 
        .uniqueResult(customer); 

jedoch in Eclipse es sagt, dass uniqueResult nicht definiert ist.

pom.xml

<build> 
    <plugins> 
     <plugin> 
     <groupId>com.mysema.maven</groupId> 
     <artifactId>apt-maven-plugin</artifactId> 
     <version>1.1.3</version> 
     <executions> 
      <execution> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>target/generated-sources/java</outputDirectory> 
       <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
      </configuration> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>com.querydsl</groupId> 
      <artifactId>querydsl-apt</artifactId> 
      <version>4.0.9</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
</build> 

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
    <version>4.0.9</version> 
</dependency> 

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <version>4.0.9</version> 
</dependency> 

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-core</artifactId> 
    <version>4.0.9</version> 
</dependency> 

Antwort

1

ich voraus ging einfach und vermieden JPAQuery und verwendet JPAQueryFactory stattdessen verwenden. Unten ist der neue Code, den ich verwendet habe:

JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager); 

QCustomer customer = QCustomer.customer; 

List<Study> result = queryFactory.selectFrom(customer) 
           .where(customer.firstName.eq("Bob")) 
           .fetchOne();