Spring Data JPA - 获取列中的所有唯一值

Sam*_*nia 7 spring-data-jpa spring-data-rest

我有一个使用Spring Data JPA的项目,它使用来自充满地址的表中的数据.这张桌子的一个栏目是城市.我想得到一个明显的表中的城市列表,即SELECT DISTINCT city FROM address.

有没有办法使用Spring Data JPA执行此操作?

man*_*ish 7

这可以通过使用来实现@Query注解为:

public interface AddressRepository extends CrudRepository<Address, Long> {
  @Query("SELECT DISTINCT a.city FROM Address a")
  List<String> findDistinctCity();
}
Run Code Online (Sandbox Code Playgroud)

然后,调用addressRepository.findDistinctCity()将返回不同的城市名称。

示例应用程序可在Github上审查。运行集成测试的mvn clean test验证方法。

  • Spring Data REST存储库方法默认情况下只能返回实体。但是,您可以编写示例以返回特定的属性值,例如您的示例。官方文档详细介绍了这些情况。 (2认同)