java - 修改在 Spring Data REST 投影后面生成的 SQL 查询

标签 java spring spring-data spring-data-jpa spring-data-rest

编辑: 如何在 SELECT 中为 Spring Data Rest Projections 保留只需要的列?

Spring Data Rest Projections 非常适合为生成的链接获取列的子集,但是在后面生成的查询仍然包含所有列。

如何创建投影,其中 SQL 查询也只有 SELECT 中的那些列在投影中

最佳答案

我不知道为什么文档中缺少它,但是这个 spring 示例(来自 spring)表明您可以使用投影作为 @Query 的返回类型。所以你可以这样做:

public interface ActionId {
    String getId(); 
}

@Query("select a.id as id from Action a where a.type = :type")
public List<ActionId> findByType(@Param("type") String type);

现在不必使用构造函数表达式,您可以更简洁地选择所需的列,然后返回一个对象。我希望投影可以应用于域对象本身,这样您仍然可以只返回一个带有 id 字段的“Action”,但现在看起来不可能 -

引用:https://github.com/spring-projects/spring-data-examples/blob/master/jpa/example/src/main/java/example/springdata/jpa/projections/CustomerRepository.java

关于java - 修改在 Spring Data REST 投影后面生成的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524529/

相关文章:

spring - Spring 中的上下文注解有什么作用?

java - Spring JMS 定义多个目的地

java - Spring jpa 实用程序日期

javascript - Angularjs 身份验证问题

java - 使用 Spring Data 将默认顺序按 id 附加到 Pageable

java - 如何合并 springframework.beans.factory.UnsatisfiedDependencyException 堆栈跟踪?

java - 获取两条线之间的点的距离

java - 如何在 Android Java 中创建一个介于最小值和最大值之间的随机数,不包括介于最小值和最大值之间的一些数字?

java - Android中Retrofit2中Part和PartMap的区别

java - Hibernate - 如何检索已为 L2 缓存配置的所有实体类的列表