2017-10-17 94 views
4

这是我第一次使用Room。我有一类叫做:使用Room Persistence Library插入多个表格

@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注解,因为它会创建一个使用所有字段作为列一个表。我正在使用上面的User类来存储来自服务器的json响应,以及在json对象中获取用户和移动细节信息的位置。

有什么办法,我插在用户表用户详细信息我能尽快插入转变表移位的细节?我最初认为这将使用@Embeded处理,但是这将创建转变用户表中我不想要的表列。

有人可以帮我关于我如何处理这个房间持久性库。类似的,我也需要做删除操作。

感谢

+0

您是否正在获取用户和班次数据作为回应? –

+0

@BurhanuddinRashid是 – Neha

+0

请发送代码为您正在获取的响应和Dao类的插入 –

回答

2

有什么办法,我插在用户表中的用户的细节,我可以尽快插入轮班表中的转移细节?

创建自己的DAO @Transaction方法要求UserShift插入。

类似的,我将不得不删除以及。

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

+1

谢谢,是的,我们更新了具有外键的Shift类。它使事情变得更容易。 – Neha