我正在使用 Android 架构组件。因此使用Room
“ORM”。我有一个EQPreset
有成员的类String presetName
。这个类有一个名为的子类UserDefinedEQPreset
,它包含一个int[] arr
. 我已经EQPreset
使用注释声明了子类和实体@Entity
,因为我只想将这个子类型存储在 db 中。现在我想使用父类的 ( EQPreset
) 成员String presetName
作为primary key
. 如何在primary key
使用时声明父类的成员Room
。我知道@Primarykey
注释用于声明主键。但是如何将父类的成员用作primary key
.
问问题
2086 次
2 回答
5
将@PrimaryKey
注释放在父类的字段上。完毕。
例如,在这个示例应用程序中,我有一个abstract class Plan
with @PrimaryKey
public final String id
。所有子类,例如Trip
,都继承该@PrimaryKey
定义。
并非所有东西都能正确继承(例如,@TypeConverters
适用于字段但不适用于类),但@PrimaryKey
似乎可以。
于 2017-07-30T13:13:20.117 回答
0
@Entity(primaryKeys = {"presetName"})
class UserDefinedEQPreset extends EQPreset{
...
}
我想这就是你要找的。使用注解primaryKeys
上的属性Entity
来指定主键。您还可以使用它来指定复合主键。
于 2018-10-11T12:28:00.700 回答