Java 使用房间';s@ForeignKey作为Kotlin中的@Entity参数
我遇到了一个使用类定义上的Java 使用房间';s@ForeignKey作为Kotlin中的@Entity参数,java,android,kotlin,android-room,java-annotations,Java,Android,Kotlin,Android Room,Java Annotations,我遇到了一个使用类定义上的@PrimaryKey注释的房间: @Entity(foreignKeys = @ForeignKey(entity = User.class, parentColumns = "id", childColumns = "userId", onDelete = CASCADE)) public
@PrimaryKey
注释的房间:
@Entity(foreignKeys = @ForeignKey(entity = User.class,
parentColumns = "id",
childColumns = "userId",
onDelete = CASCADE))
public class Repo {
...
}
现在,我有以下数据类要在其上使用主键:
@Parcel(Parcel.Serialization.BEAN)
data class Foo @ParcelConstructor constructor(var stringOne: String,
var stringTwo: String,
var stringThree: String): BaseFoo() {
...
}
因此,我刚刚在顶部添加了@Entity(tableName=“Foo”,foreignKeys=@ForeignKey(Entity=Bar::class,parentColumns=“somecols”,childColumns=“someOtherCol”,onDelete=CASCADE))
片段,但我无法编译:
批注不能用作批注参数
我想知道:为什么(我认为是什么)相同的概念在Java中工作,但在Kotlin中却不工作?还有,有办法解决这个问题吗
欢迎所有输入。这是一种提供您要查找的注释的方法,带有参数的显式数组,没有用于创建嵌套注释的
@
:
@Entity(tableName = "Foo",
foreignKeys = arrayOf(
ForeignKey(entity = Bar::class,
parentColumns = arrayOf("someCol"),
childColumns = arrayOf("someOtherCol"),
onDelete = CASCADE)))
因为,您还可以使用数组文字:
@Entity(tableName = "Foo",
foreignKeys = [
ForeignKey(entity = Bar::class,
parentColumns = ["someCol"],
childColumns = ["someOtherCol"],
onDelete = CASCADE)])
someCol是示例Foo类的一部分,而someOtherCol是xlass BAr类的一部分?事实上,反过来说。子列是来自当前实体的列(本例中为so
Foo
),父列是来自其他实体的列(本例中为Bar
)。