ビューを作成してデータベースに保存する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
バージョン 2.1.0 以降の Room 永続ライブラリ は、SQLite データベース ビュー をサポートしており、クエリをクラスにカプセル化できます。Room では、このようなクエリベース クラスを「ビュー 」と呼びます。ビューを DAO 内で使用した場合、シンプルなデータ オブジェクトと同じように動作します。
注: エンティティ と同様に、ビューに対して SELECT
ステートメントを実行できます。ただし、ビューに対して INSERT
、UPDATE
、DELETE
のステートメントを実行することはできません。
ビューを作成する
ビューを作成するには、クラスに @DatabaseView
アノテーションを追加します。アノテーションの値を、クラスが表現するクエリに設定します。
ビューの例を次のコード スニペットに示します。
Kotlin
@DatabaseView("SELECT user.id, user.name, user.departmentId," +
"department.name AS departmentName FROM user " +
"INNER JOIN department ON user.departmentId = department.id")
data class UserDetail(
val id: Long,
val name: String?,
val departmentId: Long,
val departmentName: String?
)
Java
@DatabaseView("SELECT user.id, user.name, user.departmentId," +
"department.name AS departmentName FROM user " +
"INNER JOIN department ON user.departmentId = department.id")
public class UserDetail {
public long id;
public String name;
public long departmentId;
public String departmentName;
}
ビューをデータベースに関連付ける
このビューをアプリのデータベースの一部として組み込むには、アプリの @Database
アノテーション内に views
プロパティを追加します。
Kotlin
@Database(entities = [User::class],
views =[UserDetail::class] , version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
Java
@Database(entities = {User.class}, views = {UserDetail.class} ,
version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
このページのコンテンツやコードサンプルは、コンテンツ ライセンス に記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2024-08-29 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-08-29 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-08-29 UTC。"]]