Java 8 使用spring数据rest选择不同的值
我正在使用Java8和SpringDataREST在我的数据上创建API 我有一张桌子,名字,日期 我正在尝试使用一个端点来检索不同的汽车名称 这是我的存储库:Java 8 使用spring数据rest选择不同的值,java-8,spring-data-rest,Java 8,Spring Data Rest,我正在使用Java8和SpringDataREST在我的数据上创建API 我有一张桌子,名字,日期 我正在尝试使用一个端点来检索不同的汽车名称 这是我的存储库: @RepositoryRestResource(path = "cars") public interface CarRepository extends JpaRepository<Car, Long> { //What i want to do //@Query(value = "select d
@RepositoryRestResource(path = "cars")
public interface CarRepository extends JpaRepository<Car, Long> {
//What i want to do
//@Query(value = "select distinct c.name as name from Car c")
@Query(value = "select distinct c from Car c")
List<Car> findDistinctName();
}
显然,这是SDR的正常行为
我用投影法尝试了另一种解决方案
但是我不能得到不同的价值观,知道吗
谢谢:如果您需要一个不同的汽车列表,您需要做的就是使用以下查询方法:
public interface CarRepository extends JpaRepository<Car, Long> {
List<Car> findDistinctBy();
}
Spring Data JPA支持存储库查询方法中的关键字,以便在要创建的查询上设置一个不同的标志。我发现了一个难看的解决方法,使用jpql:
@Queryvalue=select c from Car c其中c.id在select minca.id from Car ca Group by ca.name中事实上,我需要不同的车名,我尝试了解决方案,但仍然得到了相同的结果
@Projection(name = "name", types = {Car.class})
public interface CarName {
String getName();
}
public interface CarRepository extends JpaRepository<Car, Long> {
List<Car> findDistinctBy();
}