2
respostas

annotation type not applicable to this kind of declaration @ForeignKey(entity = Aluno.class,

Olá

Estou com dificuldade de fazer essa parte do código funcionar, poderiam me ajudar?

public class Telefone {

    @PrimaryKey(autoGenerate = true)
    private int id;
    private String numero;
    private TipoTelefone tipo;
    @ForeignKey(entity = Aluno.class,
            parentColumns = "id",
            childColumns = "alunoId",
    onUpdate = CASCADE,
    onDelete = CASCADE)
    private int alunoId;

    classe Aluno que fara a relação:


@Entity
public class Aluno implements Serializable {

    @PrimaryKey(autoGenerate = true)
    private int   id = 0;
    private String nome;
    private String email;
    private Calendar momentoDeCadastro = Calendar.getInstance();

    public Calendar getMomentoDeCadastro() {
        return momentoDeCadastro;
    }

    public void setMomentoDeCadastro(Calendar momentoDeCadastro) {
        this.momentoDeCadastro = momentoDeCadastro;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome() {
        return nome;
    }

    public String getEmail() {
        return email;
    }

    @NonNull
    @Override
    public String toString() {
        return nome;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    public boolean temIdValido() {
        return id > 0;
    }

}
2 respostas

Eduardo tudo bem ?

Acho que tu tá colocando no lugar errado, geralmente a gente declara as foreing keys dentro da anotação @Entity

@Entity(foreignKeys = {@ForeignKey(entity = Aluno.class,
            parentColumns = "id",
            childColumns = "alunoId",
    onUpdate = CASCADE,
    onDelete = CASCADE)
})

Olá Matheus!

O estranho é que segui os passos da vídeo aula e na parte que mostra o código está exatamente assim:

@Entity public class Telefone {

@PrimaryKey(autoGenerate = true)
private int id;
private String numero;
private TipoTelefone tipo;
@ForeignKey(entity = Aluno.class,
    parentColumns = "id",
    childColumns  = "alunoId")
private int alunoId;
// código omitido

}

E realmente da forma que vc me mostrou o código compila, me retornando apenas o erro do adapter que verei hoje a noite, muito obrigado.