微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

db_pic

我试图使用此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 举报,一经查实,本站将立刻删除。