Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

data class Topico - Erros

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"

2 respostas
solução!

Oi Bruno,

Em aula posterior será explicado o motivo do erro referente ao construtor: https://cursos.alura.com.br/course/api-rest-kotlin-spring-boot-camada-persistencia/task/93147

Quanto a questão do @OneToMany, verifica se na classe Resposta tem o atributo topico anotado com @ManyToOne.

Boa noite Rodrigo!

Muito obrigado pela atenção!! Ajudou muito!! :)