2017-10-17 97 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