Android プロジェクトでは、ORMLite バージョン 4.45 を使用しています。私は、foreignAutoCreate フィールドを持つ組織モデルを持っています。
組織モデル:
@DatabaseTable
public class Organisation {
@DatabaseField (id = true)
private UUID organisationGuid;
@DatabaseField(foreign=true, foreignAutoCreate = true, foreignAutoRefresh=true)
private Telnr telNr;
テルン モデル:
@DatabaseTable
public class Telnr {
@DatabaseField(generatedId = true)
private int telnrId;
@DatabaseField
private String number;
organisationDao.createIfNotExists(organisation) を使用して組織モデルをデータベースに追加すると、すべて問題ありません。組織と telnr テーブルに新しいレコードを作成し、生成された telnr ID を組織テーブルに配置します。
ここで、同じ組織 UUID で新しい組織モデルを作成し、更新を実行します
Organisation organisation = new Organisation();
organisation.setOrganisationGuid('same id');
organisation.setTelNr(new Telnr());
organisationDao.update(organisation);
Telnr テーブルのレコードを含めて、組織テーブルのレコードが更新されることを期待しています。代わりに組織レコードが更新されますが、組織テーブルの telnr id はnullになります。組織と telnr テーブルを更新し、ID をそのままにしておく方法はありますか?