2017-12-08 27 views
-2

Roomデータベースエンティティのコンテキスト内で2つのものを入れ替えることができますか、そうでない場合は、それらの違いは何ですか?Android Room:@Ignore vs Transient

+0

ルーム内のトランジェントへの参照が見つかりません。 https://developer.android.com/training/data-storage/room/defining-data.html – joao86

+0

トランジエントは統合キーワードですが、@ ignoreはルーム – Zoe

+0

@ joao86 https://docs.oracle.com/javaseによって追加されています。 /specs/jls/se7/html/jls-8.html#jls-8.3.1.3 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-transient/index.html – Pavlus

答えて

2

@IgnoreはRoom固有の注釈であり、Roomはそのフィールドまたはメソッドを無視する必要があると言っています。

transientは、Javaの構成であり、this field should not be serialized in standard Java serializationを示します。 Room happens to treat this similarly to @Ignore by default。ほとんどの場合、あなたがtransientを使用するクラスから継承し、そのクラスを制御していない場合(つまり、ライブラリからのものなど)です。

Javaシリアル化を使用していない場合は、フィールドに@Ignoreを貼ることをお勧めします。 transientはメソッドに使用できるキーワードではないため、Roomに特定のコンストラクタを無視するように指示するには、@Ignoreを使用するしかありません。