Extrapolando o assunto abordado na aula em que o professor nos apresenta uma forma de converter o resultado que é um List< post> para um List< postDTO>, apresento a seguinte realidade abaixo:
A JPQL criada no repository:
@Query(value="select p" +
" from Permissao p JOIN p.perfisPermissoes pp where pp.idPerfil =:idPerfil and p.stBloqueio='N'")
public List<Permissao> listarPermissoesByPerfil(@Param("idPerfil") Long idPerfil);
O DTO para eu utilizar no meu controller
@Getter
@Setter
@NoArgsConstructor
@Builder
public class PermissaoDTO {
private Long idPermissao;
private String nmPermisaso;
private String dsPermissao;
private String nmLink;
private String pathLink;
private String stBloqueio;
private Long idModulo;
public PermissaoDTO(Permissao permissao) {
this.idPermissao = permissao.getIdPermissao();
this.nmPermisaso = permissao.getNmPermissao();
this.dsPermissao = permissao.getDsPermissao();
this.nmLink = permissao.getNmLink();
this.pathLink = permissao.getPathLink();
this.stBloqueio = permissao.getStBloqueio();
this.idModulo = permissao.getIdModulo();
}
public Long getIdPermissao() {
return idPermissao;
}
public String getNmPermisaso() {
return nmPermisaso;
}
public String getDsPermissao() {
return dsPermissao;
}
public String getNmLink() {
return nmLink;
}
public String getPathLink() {
return pathLink;
}
public String getStBloqueio(){
return stBloqueio;
}
public Long getIdModulo() {
return idModulo;
}
public static List<PermissaoDTO> converter(List<Permissao> permissao) {
return permissao.stream().map(PermissaoDTO::new).collect(Collectors.toList());
}
}
Meu service que se encarrega de converter o resultado que é uma entidade para o DTO (usando o método converter)
public List<PermissaoDTO> getPermissoesByIdPerfil(Long idPerfil){
List<Permissao> permissoes = permissaoRepository.listarPermissoesByPerfil(idPerfil);
return PermissaoDTO.converter(permissoes);
Bem. Meu problema é: Estou tomando um erro na hora de compilar que diz:
Error:(14, 1) java: no suitable constructor found for PermissaoDTO(java.lang.Long,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.Long)
constructor br.mil.fab.controledeacesso.domains.permissao.PermissaoDTO.PermissaoDTO(br.mil.fab.controledeacesso.domains.permissao.Permissao) is not applicable
(actual and formal argument lists differ in length)
constructor br.mil.fab.controledeacesso.domains.permissao.PermissaoDTO.PermissaoDTO() is not applicable
(actual and formal argument lists differ in length)
Aguardo vcs. Valeu!