我有一个班级Contact
和一个班级PhoneNumber
。在PhoneNumber
类中,我有以下属性:
@DatabaseField(foreign = true, columnName = "contact_id")
private Contact mContact;
并且contact_id
类中的Contact
就是这样:
@DatabaseField(id = true, columnName = "contact_id", allowGeneratedIdInsert = false)
private Integer m_id;
当我尝试向具有相同PhoneNumber
值的数据库中插入新的contact_id
时,它总是返回constraint_failed
错误。
它应该发生吗?我无法插入具有相同外键的多行?我该如何解决?
答案 0 :(得分:0)
这应该发生。您实现了一对一的关系,但您需要一对多的关系。在您的班级中,您可以使用单个联系人获取电话号码,但db会为一个电话号码存储多个联系人。这是没有意义的。因此,您应该使用列表联系人,而不是联系人联系人。然后插入具有相同ID的多个联系人将起作用。