我以前从未使用过OrmLite,但我需要编辑使用它的现有项目。
我有两个班:人和办公室。
我正在使用gson进行解析,并向该人提供了办公室ID,例如office_id:“4456”。
我希望可以将这两个人从我的Person课程中联系起来,这样我就可以很容易地找到一个人的办公室。
例如:
@SerializedName("id")
@DatabaseField(id = true, columnName = ID)
private int mId;
@SerializedName("full_name")
@DatabaseField(columnName = FULL_NAME)
private String mFullName = null;
@DatabaseField(columnName = POSITION)
private String mPosition = null;
@SerializedName("email")
@DatabaseField(columnName = EMAIL)
private String mEmail = null;
private Office office = null;
@SerializedName("office_id")
private String officeId = null;
所以我有来自Json的officeId,它存储在Person表中。我想在加载时自动将Office加载到Person对象中。
答案 0 :(得分:0)
要在查询时自动提取引用的对象,您可以在foreignAutoRefresh = true
中使用@DatabaseField
。您引用Object而不是id本身。在表中,将存储引用行的id。
澄清您的项目:
Office
必须如下所示:
@SerializedName("id")
@DatabaseField(id = true, columnName = ID)
private int mId;
...
你的Person
(数据库方式)如下:
@DatabaseField(id = true, columnName = ID)
private int mId;
@DatabaseField(columnName = FULL_NAME)
private String mFullName = null;
@DatabaseField(columnName = POSITION)
private String mPosition = null;
@DatabaseField(columnName = EMAIL)
private String mEmail = null;
@DatabaseField(foreign = true, foreignAutoRefresh = true)
private Office office = null;
Office
表格中的Person
列将保留id
的{{1}}。
Office
告诉ORMLite在查询foreignAutoRefresh
时获取完整的Office
http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/field/DatabaseField.html#foreignAutoRefresh()
希望这有帮助