クラス定義で_@PrimaryKey
_アノテーションを使用するRoom tutorial に出会いました。
_@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 = "someCol", childColumns = "someOtherCol", onDelete = CASCADE))
スニペットも追加しましたが、コンパイルできません。
注釈を注釈引数として使用することはできません。
不思議:どうして(私が思うに)同じ概念がJavaでもKotlinではない? 、これを回避する方法はありますか?
すべての入力を歓迎します。
これは、探している注釈を提供する方法であり、引数に明示的な配列を使用し、@
ネストされた注釈の作成:
@Entity(tableName = "Foo",
foreignKeys = arrayOf(
ForeignKey(entity = Bar::class,
parentColumns = arrayOf("someCol"),
childColumns = arrayOf("someOtherCol"),
onDelete = CASCADE)))
Kotlin 1.2 なので、配列リテラルも使用できます。
@Entity(tableName = "Foo",
foreignKeys = [
ForeignKey(entity = Bar::class,
parentColumns = ["someCol"],
childColumns = ["someOtherCol"],
onDelete = CASCADE)])