我有两个实体类:

@Entity(tableName = "work_orders")
public class WorkOrderEntity
{
    @PrimaryKey(autoGenerate = true)
    private long id;
    ...
}

@Entity(tableName = "activity_logs", foreignKeys = {
        @ForeignKey(entity = WorkOrderEntity.class, parentColumns = "id", childColumns = "work_order_id") })
public class ActivityLogEntity
{
    @PrimaryKey(autoGenerate = true)
    private long id;

    @ColumnInfo(name = "work_order_id")
    private long workOrderId;
    ...
}

是否可以在一个事务中的工单和活动日志表中插入记录?像这样的:
@Transaction
public void insertBoth(WorkOrderEntity workOrderEntity, ActivityLogEntity activityLogEntity)
{
    insertWorkOrder(workOrderEntity);
    insertActivityLog(activityLogEntity);
}

考虑外键约束。
这里有类似的问题,但没有详细的答案

最佳答案

我想出了这个解决方案:

@Transaction
public void insertBoth(WorkOrderEntity workOrderEntity, ActivityLogEntity activityLogEntity)
{
    long workOrderId = insertWorkOrder(workOrderEntity);
    activityLogEntity.setWorkOrderId(workOrderId);
    insertActivityLog(activityLogEntity);
}

07-28 09:27