如何解决如何在另一个实体表列中插入主键值?
我试图使用此post插入一对多的关系记录,但是在将数据插入列表时,我总是得到0值,我搜索了很多链接,但找不到解决方案。 / p>
我道是
@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]
在上图中用户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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。