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

Telefone para mais de um tipo de objeto

@ForeignKey(entity = Aluno.class,

Este trecho do código limita a adição de telefones apenas para objetos do tipo Aluno, certo? E se eu quiser adiciona-lo a outro tipo, por exemplo Professor.class, como faria?

1 resposta
solução!

Olá Júnior, tudo bem?

Exatamente, esse trecho do código limita a adição de telefones apenas para objetos do tipo Aluno. Se você quiser adicionar telefones a objetos do tipo Professor, você pode adicionar uma nova ForeignKey na sua classe Telefone apontando para a classe Professor, por exemplo:

@Entity(
    foreignKeys = [
        ForeignKey(entity = Aluno.class, parentColumns = ["id"], childColumns = ["aluno_id"], onDelete = CASCADE),
        ForeignKey(entity = Professor.class, parentColumns = ["id"], childColumns = ["professor_id"], onDelete = CASCADE)
    ]
)
data class Telefone(
    @PrimaryKey(autoGenerate = true) val id: Long = 0,
    val numero: String,
    val tipo: String,
    @ColumnInfo(name = "aluno_id", index = true) val alunoId: Long?,
    @ColumnInfo(name = "professor_id", index = true) val professorId: Long?
)

Dessa forma, você poderá adicionar telefones tanto para objetos do tipo Aluno quanto para objetos do tipo Professor. Note que agora a classe Telefone tem duas ForeignKeys, uma apontando para a classe Aluno e outra apontando para a classe Professor.

Qualquer dúvida, estarei à disposição :)

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