代码之家  ›  专栏  ›  技术社区  ›  Smajl

无弹簧数据静止的弹簧投影

  •  0
  • Smajl  · 技术社区  · 7 年前

    spring-data-rest 提供了一种奇妙的方法来指定实体的视图-Spring投影。我很好奇是否有一种方法可以实现类似的功能而不使用 -只有存储库和简单的rest控制器。

    @Entity
    public class Customer {
    
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      private Long id;
    
      private String firstname;
      private String lastname;
    
      // … 
    }
    

    和两个控制器端点。应该返回完整实体和实体的第二个唯一子集(eq.just firstname

    我知道我可以通过创建指向同一个表的第二个实体来实现这一点,该表只包含所需的值,但问题是我也必须为它创建一个单独的存储库,它会创建许多不必要的样板文件。

    2 回复  |  直到 7 年前
        1
  •  3
  •   S.K.    7 年前

    您可以使用Spring的属性过滤器从对API的响应中过滤出几个字段:

    @RequestMapping(...)
    public MappingJacksonValue getUserEntities(...) 
        Page<UserEntity> entities = service.findAll();
        MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(entities);
        FilterProvider filters = new SimpleFilterProvider()
                    .addFilter("UserEntity", SimpleBeanPropertyFilter
                            .filterOutAllExcept("fieldName"));
        mappingJacksonValue.setFilters(filters);
        return mappingJacksonValue;
    }
    
        2
  •  1
  •   mtshaikh    7 年前