编辑: 如何在 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”,但现在看起来不可能 -
关于java - 修改在 Spring Data REST 投影后面生成的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524529/