Minha classe/entidade Cliente já possui as classes Model, Controller(@RestController), Service, Projection e Repository. Ao executar minha query de SELECT customizada, o objeto retornado tem os campos todos com valores NULL. Essa query customizada é um findById que consulta/retorna campos específicos da entidade.
Ou seja, a query está com sintaxe correta e o objetor está sendo criado sem erros. Mas... porque tudo NULL? Obviamente eu testei usando um ID que existe
ClienteRepository
@Repository
public interface ClienteRepository extends JpaRepository<Cliente, Integer> {
@Query("SELECT c.nome, c.sobrenome, c.cpf, c.phone, c.usuario FROM cliente c WHERE c.id = :id")
ClientesInfoLimitada findByIdLimited(@Param(value = "id")int id);
}
ClientesInfoLimitada
public interface ClientesInfoLimitada {
String getCpf();
String getNome();
String getPhone();
String getSobrenome();
UsuarioInfoLimitada getUsuario();
}
ClienteController
@RestController
@RequestMapping("cliente")
public class ClienteController {
@Autowired
private ClienteService CLIENTE_SERVICE;
@GetMapping("/{id}")
public ResponseEntity<?> findOne(@PathVariable(name = "id")int id) {
final ClientesInfoLimitada clienteLimit = CLIENTE_SERVICE.findByIdLimited(id);
return new ResponseEntity<>(clienteLimit, HttpStatus.FOUND);
}
}