如何配置 (XML) QueryDSL 以与 Spring Data 和 Spring MVC 一起使用? [英] How do I configure (XML) QueryDSL to be used with Spring Data and Spring MVC?
本文介绍了如何配置 (XML) QueryDSL 以与 Spring Data 和 Spring MVC 一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
希望使用 XML 配置配置 Spring MVC、Spring Data 和 QueryDSL 的快速参考.
Quick reference for those looking to configure Spring MVC, Spring Data, and QueryDSL using XML config.
推荐答案
在 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
中:
<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="conversionService"/>
<mvc:annotation-driven conversion-service="conversionService">
<mvc:argument-resolvers>
<bean class="org.springframework.data.web.querydsl.QuerydslPredicateArgumentResolver">
<constructor-arg>
<bean class="org.springframework.data.querydsl.binding.QuerydslBindingsFactory">
<constructor-arg>
<value type="org.springframework.data.querydsl.SimpleEntityPathResolver">INSTANCE</value>
</constructor-arg>
</bean>
</constructor-arg>
<constructor-arg ref="conversionService"/>
</bean>
</mvc:argument-resolvers>
</mvc:annotation-driven>
在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";
}
然后你可以像这样查询你的仓库:
Then you can query your repository like this:
GET /foo?bar=baz
假设 bar
是 foo
这篇关于如何配置 (XML) QueryDSL 以与 Spring Data 和 Spring MVC 一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文