таким образом, БД знает, что конкретный объект / строка не имеет другого родителя другого типа при попытке удалить его, когда его родитель удаляется.

смог найти никакой информации о том, как аннотировать значение SQL - "DEFAULT", просматривая@ColumnInfo документы для новой библиотеки Android Persistence.

Предоставляет ли даже Room аннотацию для значений по умолчанию?

Мое текущее решение было бы вручную создать соответствующую таблицу ...

CREATE TABLE MyTable (
  ...
  MyDefaultValuedCol  TEXT DEFAULT 'Default Value',
  MyDefaultFlagCol  ,  INT  DEFAULT 1
)

... и поставить комнату на вершине.

@Entity(tableName = "MyTable")
class MyClass {
    ...

    public String MyDefaultValuedCol;

    public boolean MyDefaultFlagCol;

}

Ответы на вопрос(3)

но вы можете установить значение по умолчанию в вашей сущности следующим образом:

@Entity(tableName = "MyTable")
class MyClass {
    ...

    public String MyDefaultValuedCol = "defaultString";

    public boolean MyDefaultFlagCol = true;

}
 Brill Pappin16 июл. 2018 г., 15:37
Это не помогает, когда вы выполняете оператор непосредственно, например, при обновлении только некоторых полей. Нам нужно иметь возможность генерировать значения по умолчанию в SQL.
 tasomaniac27 мар. 2018 г., 18:40
Помните, что это не изменит создание сгенерированной таблицы SQLite для установки значения по умолчанию.

там некоторое значение по умолчанию.

@Entity(tableName = "Dashboard")
public class Dashboard {
@PrimaryKey
@NonNull
@ColumnInfo(name = "claimNumber")
private String claimNumber;
private String percentage = "0";
private String imagePath = "";

@NonNull
public String getClaimNumber() {
    return claimNumber;
}

public void setClaimNumber(@NonNull String claimNumber) {
    this.claimNumber = claimNumber;
}



public String getPercentage() {
    if (percentage == null || percentage.isEmpty()) {
        return "0";
    }
    return percentage;
}

public void setPercentage(String percentage) {
    this.percentage = percentage;
}

public String getImagePath() {
    return imagePath;
}

public void setImagePath(String imagePath) {
    this.imagePath = imagePath;
}

public Dashboard(@NonNull String claimNumber,  String percentage, String imagePath) {
    this.claimNumber = claimNumber;

    this.percentage = percentage;
    this.imagePath = imagePath;
}

}

 Patel Jaimin11 мар. 2019 г., 14:38
Нет смысла представлять числовое значение в виде строки. Я просто приведу вам пример. @MartinZeitler
 Martin Zeitler03 мар. 2019 г., 05:05
и какой смысл представлять числовые значения как тип данныхString?

кто сталкивается с ситуацией, когда у вас есть два внешних ключа и «onDelete = CASCADE», вы можете установить внешний ключ для типа данных, который может быть установлен в null, например:

int parent1Id = 0;
int parent2Id = 0;  
//should be:
Long parent1Id = null;//that wasn't necessary in my case
Long parent2Id = null;

таким образом, БД знает, что конкретный объект / строка не имеет другого родителя другого типа при попытке удалить его, когда его родитель удаляется.

Ваш ответ на вопрос