Após fazer a alteração para o Hibernate, essa exceção "InstatiationExceptio" me aparece quando tento utilizar o método "getList". Como consigo resolver?
Após fazer a alteração para o Hibernate, essa exceção "InstatiationExceptio" me aparece quando tento utilizar o método "getList". Como consigo resolver?
Ola!
Pelo erro mostrado no seu print:
org.hibernate.InstantiationException: No default constructor for entity
: br.com.Alura.AluGames.Modelos.JogoEntity
O problema é que o Hibernate precisa de um construtor sem argumentos (default constructor) para conseguir instanciar suas entidades.
No Kotlin, quando você define uma data class
ou adiciona apenas construtores com parâmetros obrigatórios, o compilador não gera um construtor vazio automaticamente (como acontece em Java).
Na sua entidade JogoEntity
, adicione um construtor sem parâmetros. Algo assim:
import jakarta.persistence.*
@Entity
@Table(name = "jogos")
class JogoEntity(
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long? = null,
val titulo: String = "",
val capa: String = "",
val preco: Double = 0.0,
val descricao: String = ""
) {
// Construtor vazio exigido pelo Hibernate
constructor() : this(null, "", "", 0.0, "")
}
constructor()
), mesmo que não vá usá-lo diretamente no seu código.Depois de adicionar esse construtor vazio na sua JogoEntity
, o getList()
deve funcionar sem lançar InstantiationException
.