将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
如您所见,没有限制。我做错了什么?
答案 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参数提供排序顺序。
希望这可以帮助你:)