Bom dia, pessoal! Tudo bem?
Estou com duas dúvidas sobre essa aula.
Quando fui realizar o mapeamento das entidades, fiz igual ao que foi feito na aula, mas fui obrigado a adicionar um construtor sem argumentos, mas não entendi muito bem o motivo. Ao deixar da forma que foi feito na aula, recebi o erro "Entities are required to have a public or protected no-argument constructor, onde segui a sugestão do IntelliJ e coloquei o construtor sem argumentos e o erro sumiu, ficando da seguinte forma:
package br.com.alura.forum.model
import java.time.LocalDateTime
import javax.persistence.*
@Entity
data class Topico (
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long? = null, // "?" é para não obrigatórios
val titulo: String,
val mensagem: String,
val dataCriacao: LocalDateTime = LocalDateTime.now(), //Pegando a data atual
@ManyToOne
val curso: Curso,
@ManyToOne
val autor: Usuario,
@Enumerated(value = EnumType.STRING)
val status: StatusTopico = StatusTopico.NAO_RESPONDIDO,
@OneToMany(mappedBy = "topico")
val respostas: List<Resposta> = ArrayList()
) {
constructor() : this() {
}
}
Porém, ainda fico recebendo um erro quando coloco o "@OneToMany(mappedBy = "topico")"
O erro diz: "Can't find inverse attribute"