Error saving user - Hibernate

Asked

Viewed 45 times

0

I am getting the following error while trying to save a user using Hibernate:

java.lang.IllegalArgumentException: Can not set java.lang.String field com.example.apiadote.model.entity.Usuario.email to com.example.apiadote.model.entity.Usuario.

Follows the code.

Entity

@Component
@Entity
@Table(name="usuario")
public class Usuario {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @Column(name="email")
    private String email;

    @Column(name="senha")
    private String senha;

    public static UsuarioBuilder builder() {
        return new UsuarioBuilder();
    }

    public Usuario() {
    }

    public Usuario(Long id, String email, String senha) {
        this.id = id;
        this.email = email;
        this.senha = senha;

    }


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }


}

User

@Repository
public class UsuarioDAOImpl implements UsuarioDAO {

     @Autowired
     Usuario usuario;

    @Override
    public Usuario createUsuario(Usuario usuario){

        Session session = HibernateUtil.getSessionFactory().openSession();
        session.beginTransaction();

        session.save(usuario);
        session.getTransaction().commit();
        session.close();
        System.out.println(usuario);

        return usuario;
    }

Service

@Override
    public Usuario createUsuario(Usuario usuario) {



       usuario.setEmail(usuario.getEmail());
       usuario.setSenha(usuario.getSenha());

       usuarioDAO.createUsuario(usuario);

       return usuario;
    }

Controller

 @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public ResponseEntity salvar (@RequestBody UsuarioDTO dto ) {

        Usuario usuario = Usuario.builder()
                         .email(dto.getEmail())
                         .senha(dto.getSenha()).build();

        try{
            Usuario usuarioSalvo = usuarioService.createUsuario(usuario);
            return new ResponseEntity(usuarioSalvo, HttpStatus.CREATED);
        }catch (RegraNegocioException e ) {
            return ResponseEntity.badRequest().body(e.getMessage());
        }
    }
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.