我想知道如何填充这些类:
interface BaseDTO {
Integer getId();
String getNome();
Boolean getAtivo();
RegionalDTO getRegional();
MunicipioDTO getMunicipio();
}
interface RegionalDTO {
Integer getId();
}
interface MunicipioDTO {
Integer getId();
}
并运行此查询
@Query(value = "SELECT " +
"base.ID_BASE AS id, base.NOME AS nome, base.ATIVO AS ativo, " +
"regional.ID_REGIONAL AS ID_REGIONAL, " +
"municipio.ID_MUNICIPIO AS ID_MUNICIPIO " +
"FROM TB_BASE base " +
"LEFT JOIN TB_REGIONAL regional on base.ID_REGIONAL = regional.ID_REGIONAL " +
"LEFT JOIN TB_MUNICIPIO municipio on base.ID_MUNICIPIO = municipio.ID_MUNICIPIO " +
"ORDER BY base.ID_BASE", nativeQuery = true)
List<BaseDTO> getAll();
所以我想选择查询中的字段,因为稍后我会将更多字段放入这些 DTO 中。
最佳答案
我认为最简单的方法是使用仅包含 regional
和 municipio
id 的简单接口(interface)。调用 getAll
后,将此接口(interface)映射到适当的类结构(其中 ids 转换为 dtos)。
List<RealDTO> result = repository.getAll().stream()
.map(i -> new RealDTO(i))
.collect(Collectors.toList());
关于java - 使用 Spring Projection Interface 的 native 查询来选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59941491/