我使用android房间持久性库作为orm。
我有以下实体:

@Entity(tableName = "log_entries",
        foreignKeys = {
                @ForeignKey(
                        entity = Serving.class,
                        parentColumns = "id",
                        childColumns = "foodId",
                        onDelete = ForeignKey.CASCADE
                )
        }
)
public class LogEntry {

    @PrimaryKey(autoGenerate = true)
    private long id;

    private long servingId;

    // ...
}

有些日志项有服务,有些则没有。添加日志项
它有一个服务可以正常工作,但是添加一个id=0来表示“没有关系”会导致
SQLiteConstraintException带有消息
外键约束失败
// ...
LogEntry logEntry = new LogEntry();
logEntry.setServingId(0);
// ...

db.logEntryDao().add(logEntry);

那么,我该如何表达这样一个事实:一个日志条目在房间里没有服务?

最佳答案

您需要使用Long作为数据类型,并插入null作为servingId的实体。

// ...
LogEntry logEntry = new LogEntry();
logEntry.setServingId(null);
// ...

db.logEntryDao().add(logEntry);

09-28 02:30