2015-09-03 50 views

回答

1

pom.xml

<properties> 
    <querydsl.version>3.6.7</querydsl.version> 
</properties> 

<dependencies> 

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

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>1.9.0.RELEASE</version> 
    </dependency> 

    <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-jpa</artifactId> 
     <version>${querydsl.version}</version> 
    </dependency> 

</dependencies> 

<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.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

    </plugins> 
</build> 

mvc-dispatcher-servlet.xml

​​3210

FooRepository.java

public interface FooRepository extends JpaRepository<Foo, Long>, QueryDslPredicateExecutor<Foo> { 

} 

FooController.java

@RequestMapping("/foo") 
String getPage(
    @QuerydslPredicate(root = Foo.class) Predicate predicate, 
    Pageable pageable, 
    Model model 
) { 

    Page<Foo> page = fooRepository.findAll(predicate, pageable); 

    model.addAttribute("page", page); 

    return "foo/index"; 
} 

然后你就可以查询你的资料库是这样的:

GET /foo?bar=baz 

假设barfoo

属性