Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Class 'Categoria' should have [public, protected] no-arg constructor

Estou recebendo uma mensagem de erro dizendo que é necessário um construtor padrão para uma Entity, sendo que tenho o construtor que recebe de uma String. Então todas as Entity's é necessário um construtor sem argumentos ?

@Entity
@Table(name = "categorias")
public class Categoria {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nome;

    public Categoria(String nome) {
        this.nome = nome;
    }
}

Class 'Categoria' should have [public, protected] no-arg constructor

1 resposta
solução!

Olá Filpe

JPA/Hibernate requer que implementes um construtor sem argumentos.

The JPA specification requires that all persistent classes have a no-arg constructor. This constructor may be public or protected. Because the compiler automatically creates a default no-arg constructor when no other constructor is defined, only classes that define constructors must also include a no-arg constructor.

Algo que normalmente é adicionado automaticamente. MAs como criaste o teu próprio construtor, este construtor padrão deixa de existir. Assim sendo, precisas implementar o construtor sem argumentos manualmente:

@Entity
@Table(name = "categorias")
public class Categoria {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nome;

   public Categoria() {}

    public Categoria(String nome) {
        this.nome = nome;
    }
}

Penso que o código acima resolve o teu problema.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software