gpt4 book ai didi

android - 使用 Room Persistence Library 插入多个表

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:13 25 4
gpt4 key购买 nike

这是我第一次使用 Room。我有一门课叫:

@Entity(tableName = "users")
class User{
@PrimaryKey
@ColumnInfo(name = "id")
@SerializedName("id")
String id;

@ColumnInfo(name = "name")
@SerializedName("name")
String name;

@SerializedName("shift")
@Ignore
List<Shift> shifts;
}

@Entity(tableName = "shifts")
class Shift{
@PrimaryKey
@ColumnInfo(name = "id")
@SerializedName("id")
String id;

@ColumnInfo(name = "start_time")
@SerializedName("start_time")
String startTime;

@ColumnInfo(name = "end_time")
@SerializedName("end_time")
String endTime;
}

我希望这两个在数据库中是单独的表,因此我不能使用 @Embedded 注释,因为它将创建一个使用所有字段作为列的表。我也使用上面的用户类来存储来自服务器的 json 响应,我在其中获取 json 对象中的用户和类次详细信息。

users 表中插入用户详细信息后,有什么方法可以在shifts 表中插入类次详细信息?我最初认为这将使用 @Embeded 来处理,但这会在我不想要的 user 表中创建 shift 表列。

有人可以帮助我了解我应该如何在 Room Persistence Library 中处理这个问题。类似的我也必须为删除做。

谢谢

最佳答案

Is there any way I can insert the Shift details in shifts table as soon as I insert the User details in the users table ?

创建您自己的 DAO @Transaction 方法,为 UserShift 调用插入。

Similar I will have to do for delete as well.

如果您修复了您的 Shift 类,使其与具有适当级联删除选项的 User 具有 @ForeignKey 关系,删除User 也会删除其 Shift 行。在您当前的实现中,UserShift 是不相关的。

关于android - 使用 Room Persistence Library 插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46783228/

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