@Entity(tableName = "parent_table") public class ParentEntity { @PrimaryKey @ColumnInfo(name = "parent_id") public long parentId;
//...other fields and methods
}
@Entity( tableName = "child_table", foreignKeys = @ForeignKey( entity = ParentEntity.class, parentColumns = "parent_id", childColumns = "parent_id", onUpdate = CASCADE, onDelete = CASCADE ), indices = {@Index(value = {"parent_id"}, unique = true)} ) public class ChildEntity { @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "child_id") public long childId;
@ColumnInfo(name = "parent_id")
public long parentId;
//...other fields and methods
}
public class ParentWithChild {
@Embedded public ParentEntity parent;
@Relation(
parentColumn = "parent_id",
entityColumn = "parent_id",
entity = ChildEntity.class
)
public List
这样就建立了一个1到0..1的关系。如果希望子实体最多只能关联到一个父实体,则需要在@Foreign注解中将onUpdate和onDelete属性都设置为CASCADE。