Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用房间';s@ForeignKey作为Kotlin中的@Entity参数_Java_Android_Kotlin_Android Room_Java Annotations - Fatal编程技术网

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
)。