[英]ORMLite. How to establish one-to-one relations of two tables related, like “primary key to foreign key”
我有兩個表,其中一個與另一個表之間的關系超出了外國ID到主要ID的關系。
而且我有一些模型描述,我認為這看起來是正確的,但它不起作用。
第一桌
public class Person {
@DatabaseField(id = true)
private int id;
@DatabaseField(columnName = "person_id", foreign = true, foreignAutoRefresh = true)
Patient patient;
public Patient getPatient() {
return patient;
}
第二張桌子
public class Patient {
@DatabaseField(columnName = "person_id", foreign = true)
private Person personId;
當我嘗試通過“人員”從“患者”中查找數據時,我得到了一個空指針。 如果親自更改外鍵列名稱,則會得到PSQLException,因為ResultSet不包含這樣的列。
對於調試,我使用簡單的main方法
public static void main(String[] args) throws SQLException {
Person p = new PersonDAO().getByUserId();
System.out.println(p.getPatient());
}
如何建立兩個相關表的一對一關系,例如“主鍵到外鍵”
patientId
關系的問題是,在“ Person
表中有一個patientId
字段,在“ Patient
表中有一個personId
字段。 但是,僅在數據庫中創建ID時才設置ID。
這意味着您將必須執行3個數據庫操作:
personDao.create(...)
在數據庫中創建Person
以獲得與之關聯的ID。 Person
設置在相應的Patient
,然后使用patientDao.create(...)
在數據庫中創建Patient
。 Patient
重新站上Person
實體現在患者已經有一個id,然后與數據庫更新personDao.update(...)
其他幾件事:
dao.getByUserId()
方法的參數,因為它需要一個ID才能找到有問題的特定對象。 Patient
也有一個id字段。 Patient
”中的字段應該只是person
,而不是personId
。 ORMLite將在該字段的封面下存儲一個ID。 “ Person
”中的字段正確地稱為“ patient
。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.