gpt4 book ai didi

android - 更新外部对象 ORMLite - ANDROID

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:19 24 4
gpt4 key购买 nike

我想知道如何更新 ORMLITE 中的外来对象?

假设我有这些类(class)

这是父级

public static class Parent {

@DatabaseField(generatedId=true,allowGeneratedIdInsert=true)
int id;
@DatabaseField
String name;
...

这是 child

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名字=“大”

对于 child 编号=338父级 = {id=5,name="big"}

在这里,当我想更新我的 parent ID 时,它运行良好:

firstId=5, lastId=6

UpdateBuilder<Parent, Integer> builder = ParentDao.updateBuilder();
builder.where().eq("id", firstId);
builder.updateColumnValue("id", lastId);
builder.update();

之后,我使用 select 命令来确定它是否已更新。我确定它正在为 Parent 更新。但是当我更新我的 Parent id 时,我在我的 Child 对象中丢失了父对象。它看起来像这样:

给家长id=6名字=“大”

对于 child 编号=338父级 = {null}

有人知道这个的解决方案吗?

最佳答案

OrmLite 不会像其他 ORM 一样自动自动保存嵌套对象。

因此您还需要更新 Child。


步骤是

  1. 首先你得到父对象。
  2. 从那里读 child 。
  3. 更新 parent
  4. 现在将更新的父项设置为子项
  5. 也更新 child 。

关于android - 更新外部对象 ORMLite - ANDROID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19174874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com