我可以扩展一个简单的对象 class 来创建一个 Room 数据库对象吗?
Can i extend a simple object class to create a Room database object?
假设我有一个简单的对象class:
public class Test {
public String teststring;
}
但是我想创建另一个对象 class,这次它将是一个房间数据库 class:
@Entity(tableName = "test_table_one")
public class TestChildOne extends Test {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public long test_id;
}
然后,我想创建另一个 class:
@Entity(tableName = "test_table_two")
public class TestChildTwo extends Test {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public long test_id;
}
这里的问题是父 class 的字符串 teststring
没有 @ColumnInfo
注释。事实上,我不想在父 class 中设置 @Entity
注释,因为这两个子 classes 将属于不同的表,如您所见。
那么,我可以只在父 class 中设置一个 @ColumnInfo
而不设置 @Entity
吗?那么当我创建一个对象 TestChildOne
并设置 TestChildOne.teststring
时它会起作用还是会抛出错误?
非常感谢您!
@ColumnInfo
注释即使在父 class 中也可以工作,所以即使 class 没有 @Entity
注释你也可以写 @ColumnInfo
public class Test {
@ColumnInfo( name = "yourColumnName" )
public String teststring;
}
假设我有一个简单的对象class:
public class Test {
public String teststring;
}
但是我想创建另一个对象 class,这次它将是一个房间数据库 class:
@Entity(tableName = "test_table_one")
public class TestChildOne extends Test {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public long test_id;
}
然后,我想创建另一个 class:
@Entity(tableName = "test_table_two")
public class TestChildTwo extends Test {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
public long test_id;
}
这里的问题是父 class 的字符串 teststring
没有 @ColumnInfo
注释。事实上,我不想在父 class 中设置 @Entity
注释,因为这两个子 classes 将属于不同的表,如您所见。
那么,我可以只在父 class 中设置一个 @ColumnInfo
而不设置 @Entity
吗?那么当我创建一个对象 TestChildOne
并设置 TestChildOne.teststring
时它会起作用还是会抛出错误?
非常感谢您!
@ColumnInfo
注释即使在父 class 中也可以工作,所以即使 class 没有 @Entity
注释你也可以写 @ColumnInfo
public class Test {
@ColumnInfo( name = "yourColumnName" )
public String teststring;
}