@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?
@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?
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 :)