Spring数据jpa限制不起作用

时间:2014-12-09 11:25:25

标签: spring-data-jpa

将JPA存储库命名为:

public interface CityRepository extends JpaRepository<City, Long>

一个名为的方法:

public List<City> findFirst4ByHighlightedAndCountryCodeOrderByNameAsc(Boolean highlighted, String countryCode);

我收到此查询:

 select city0_.idCity as idCity1_2_, city0_.countryCode as countryC2_2_, city0_.highlighted as highligh3_2_, city0_.latitude as latitude4_2_, city0_.longitude as longitud5_2_, city0_.name as name6_2_, city0_.numPublishedItems as numPubli7_2_, city0_.idRegion as idRegion8_2_, city0_.url as url9_2_ from web_city city0_ where city0_.highlighted=? and city0_.countryCode=? order by city0_.name asc

如您所见,没有限制。我做错了什么?

2 个答案:

答案 0 :(得分:1)

确保您使用的是Spring Data JPA 1.7或更新版本。这通常通过将依赖性版本设置为例如所需版本来完成。你的pom.xml

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-jpa</artifactId>
  <version>1.7.1.RELEASE</version> <!-- current version as of today -->
</dependency>

在评论中您将1.1.9列为已使用的版本,因此我假设您正在使用Spring Boot来构建项目。 1.1.9的Boot仍然使用Spring Data的Dijkstra版本系列,这意味着Spring Data JPA包含在1.6.4版本中。要升级到最新版本,请配置Maven属性,如下所示:

<properties>
  … <!-- other defined properties -->
  <spring-data-releasetrain.version>Evans-SR1</spring-data-releasetrain.version>
</properties>

这会将Spring Data依赖项升级到Evans版本系列的第一个服务版本,并包含Spring Data JPA 1.7.1。

答案 1 :(得分:0)

您可以尝试使用以下语法吗?这可能会对你有所帮助。

List<User> findFirst10ByHighlightedAndCountryCode(Boolean highlighted, String countryCode, Sort sort);

并为Sort参数提供排序顺序。

希望这可以帮助你:)