Olá gente.
Estou aqui, separando a entidade do DTO, porém, no arquivo de mapeamento que estou utilizando o mapStruct oSpring está me informando erro.Já tentei localizar de todo o jeito, inclusive analisando outros arquivos que utilizam o mapstruct e nada.
Alguém pode me ajudar a achar este erro (que acredito ser muito simples).
Segue o erro abaixo:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 1 of constructor in br.com.pjem.banco.service.ClientesService required a bean of type 'br.com.pjem.banco.mapper.MapaDeCliente' that could not be found.
Action:
Consider defining a bean of type 'br.com.pjem.banco.mapper.MapaDeCliente' in your configuration.
Abaixo os arquivos:
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(name = "clientes")
public class Clientes {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idCliente;
@Column(nullable = false)
private String nome;
@Column(nullable = false, unique = true)
private String cpf;
@Column(nullable = false)
private String endereco;
private int numero;
private String complemento;
@Column(nullable = false)
private String bairro;
@Column(nullable = false)
private String cidade;
@Column(nullable = false)
private String uf;
private String telefone;
@Column(nullable = false)
private String email;
@Column(nullable = false)
private float rendimento;
private Date cadastro;
@OneToMany(mappedBy = "clientes", fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST})
private List<Contas> contas = new ArrayList<>();
public void setConta(List<ContasDTO> conta) {
}
}
Aqui o DTO:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.br.CPF;
import org.springframework.boot.convert.DataSizeUnit;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.validation.Valid;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClientesDTO implements Serializable {
private Long idCliente;
@NotNull
@Size(min=3, max = 250)
private String nome;
@NotNull
@CPF
private String cpf;
@NotNull
@Size(min=3, max = 200)
private String endereco;
@Size(max = 5)
private int numero;
@Size(max = 150)
private String complemento;
@NotNull
@Size(min=3, max = 100)
private String bairro;
@NotNull
@Size(min=3, max = 150)
private String cidade;
@NotNull
@Size(min=2, max = 2)
private String uf;
@Size(min=10, max = 11)
private String telefone;
@NotNull
@Email
@Size(max = 250)
private String email;
@NotNull
@Size(min=3, max = 8)
private float rendimento;
@NotNull
@DateTimeFormat
private Date cadastro;
@Valid
@NotEmpty
private List<ContasDTO> contas;
public void setContas(Object contas) {
}
}
Aqui o arquivo mapper:
import br.com.pjem.banco.dto.ClientesDTO;
import br.com.pjem.banco.entity.Clientes;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
@Mapper (componentModel = "spring")
public interface MapaDeCliente {
MapaDeCliente INSTANCE = Mappers.getMapper(MapaDeCliente.class);
Clientes paraEntidade (ClientesDTO clientesDTO);
ClientesDTO paraDTO (Clientes clientes);
}