Room 2.1.0 及更高版本提供對 SQLite 資料庫的 View 功能,允許使用者將查詢封裝到類別中。Room 將這些查詢支持的類別稱為 View,作用和使用 DAO 的簡單資料物件相同。
注意:
與實體(Entitiy)一樣,可以針對 View 運行 SELECT 語句。但是無法對 View 進行 INSERT, UPDATE 或 DELETE 語句。
Create a view
要建立 View,請將 @DatabaseView 註釋加入類別。將註釋的值設置為該類別應表示的查詢。以下代碼段提供了一個 View 範例:
@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; }
Associate a view with your database
要將該 View 作為資料庫的一部分,請在 @Database 註釋中加入 views 屬性
@Database(entities = {User.class}, views = {UserDetail.class}, version = 1) public abstract class AppDatabase extends RoomDatabase { public abstract UserDao userDao(); }
Article Comments