ORMLITE で外部オブジェクトを更新する方法を知りたいですか?
これらのクラスがあるとしましょう
これは親です
public static class Parent {
@DatabaseField(generatedId=true,allowGeneratedIdInsert=true)
int id;
@DatabaseField
String name;
...
これは子供です
public static class Child{
@DatabaseField(generatedId=true,allowGeneratedIdInsert=true)
int id;
@DatabaseField(canBeNull = false, foreign = true,foreignAutoCreate = true,foreignAutoRefresh = true, columnDefinition = "integer references parent(id) on update cascade")
Parent parent;
...
次の値があるとします。
親 id=5 name = "big" の場合
子の場合 id=338 親 = {id=5,name="big"}
ここで、親IDを更新したい場合、うまく機能しています:
firstId=5、lastId=6
UpdateBuilder<Parent, Integer> builder = ParentDao.updateBuilder();
builder.where().eq("id", firstId);
builder.updateColumnValue("id", lastId);
builder.update();
その後、selectコマンドを使用して、更新されているかどうかを確認しています。親のために更新していると確信しています。しかし、親 ID を更新すると、子オブジェクトの親オブジェクトが失われます。次のように表示されます。
親 id=6 name = "big" の場合
子 id=338 親 = {null}の場合
誰かがこれに対する解決策を知っていますか?