Android 如何在另一个实体表列中插入主键值?
我尝试使用此方法插入一对多关系记录,但在将数据插入列表时,我总是得到0值,我搜索了这么多链接,但找不到解决方案帮助 我的刀是Android 如何在另一个实体表列中插入主键值?,android,android-room,database-relations,Android,Android Room,Database Relations,我尝试使用此方法插入一对多关系记录,但在将数据插入列表时,我总是得到0值,我搜索了这么多链接,但找不到解决方案帮助 我的刀是 @Insert public abstract void insertUser(Hold user); @Insert public abstract void insertPetList(List<ScanItem> pets); @Query("SELECT * FROM Hold WHERE holdId =:id") publi
@Insert
public abstract void insertUser(Hold user);
@Insert
public abstract void insertPetList(List<ScanItem> pets);
@Query("SELECT * FROM Hold WHERE holdId =:id")
public abstract Hold getUser(int id);
@Query("SELECT * FROM ScanItem WHERE userId =:userId")
public abstract List<ScanItem> getPetList(int userId);
public void insertUserWithPet(Hold user) {
List<ScanItem> pets = user.getScanItemList();
for (int i = 0; i < pets.size(); i++) {
pets.get(i).setUserId(user.getHoldId());
}
insertUser(user);
insertPetList(pets);
}
public Hold getUserWithPets(int id) {
Hold user = getUser(id);
List<ScanItem> scanItemList = getPetList(id);
user.setScanItemList(scanItemList);
return user;
}[![database table][2]][2]
@Insert
公开摘要无效插入器(保留用户);
@插入
公共摘要无效插入PETLIST(列出pets);
@查询(“从holdId=:id处的Hold中选择*)
公共摘要保持getUser(int-id);
@查询(“从扫描项中选择*,其中userId=:userId”)
公共摘要列表getPetList(int userId);
公共作废insertUserWithPet(保留用户){
List pets=user.getScanItemList();
对于(int i=0;i
在上面用户id列中的图片中,我总是得到0值,如何将主键值插入到用户id列中
我的实体是=
@Entity()
public class Hold implements Serializable {
@PrimaryKey(autoGenerate = true)
int holdId;
@ColumnInfo(name = "subTotal")
Float subTotal;
@ColumnInfo(name = "discount")
Float discount;
@ColumnInfo(name = "tax")
Float tax;
@ColumnInfo(name = "grandTotal")
Float grandTotal;
@Expose
@Ignore
private List<ScanItem> scanItemList = null;
}
Second Entity =
@Entity()
public class ScanItem implements Serializable {
@PrimaryKey(autoGenerate = true)
private int scanid;
@ColumnInfo(name = "userId")
public int userId;
}
@Entity()
公共类保持实现了可序列化{
@PrimaryKey(自动生成=真)
int-holdId;
@ColumnInfo(name=“小计”)
浮动小计;
@ColumnInfo(name=“折扣”)
浮动折扣;
@ColumnInfo(name=“tax”)
浮动税;
@ColumnInfo(name=“grandTotal”)
浮动总额;
@暴露
@忽略
私有列表scanItemList=null;
}
第二实体=
@实体()
公共类ScanItem实现可序列化{
@PrimaryKey(自动生成=真)
私有int scanid;
@ColumnInfo(name=“userId”)
公共int用户id;
}
大家好,有什么建议吗