房间数据库:如何设置字符串资源的默认值



如何设置字符串等资源中某些字段的默认值。因为我想为不同的语言设置值

@ColumnInfo(defaultValue = "") // R.string.someword
private String publisher;

尝试时:

@ColumnInfo(defaultValue = Resources.getSystem().getString(android.R.string.someword)) 
private String publisher;

获取以下错误

Attribute value must be constant

简而言之,您不能这样做,因为这些值可以在运行时更改,而Room构建SQL,在编译时创建表、索引和视图。

默认值="参数用于将该值应用于CREATE TABLE ....sql的DEFAULT构造。

如果你成功编译,你可以在java生成的(Android视图(文件中看到生成的SQL,该文件与@Database类的名称相同,但后缀为_Impl。

最新更新