2
내가 2 엔티티 클래스가 있습니다룸 지속성 도서관 거래
@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;
...
}
가 하나의 트랜잭션에 work_orders 및 activity_log 테이블에 레코드를 삽입하는 방법이 있나요를? 다음과 같은 것 :
@Transaction
public void insertBoth(WorkOrderEntity workOrderEntity, ActivityLogEntity activityLogEntity)
{
insertWorkOrder(workOrderEntity);
insertActivityLog(activityLogEntity);
}
외래 키 제약을 염두에두고. 여기
는 비슷한 질문 Insert into multiple tables using Room Persistence Library하지만, 정교 대답없이
'insertBoth()','insertWorkOrder()','insertActivityLog()'는'@ Dao' 클래스에있는 모든 메소드라고 가정합니다. – CommonsWare
네, 같은'@ Dao' 클래스에'insertBoth()','insertWorkOrder()'와'insertActivityLog()'를 넣었 습니다만, 문제는 자동 생성 된 id를 가진 WorkOrderEntity를 삽입 한 후에 그 id가 ActivityLogEntity' workOrderId' –