Android 如何在另一个实体表列中插入主键值?

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

我尝试使用此方法插入一对多关系记录,但在将数据插入列表时,我总是得到0值,我搜索了这么多链接,但找不到解决方案帮助

我的刀是

@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;
}

大家好,有什么建议吗