鑒于有3個表
data class Pet(
(
val id: 字串。
val name: String,
val color: String,
高度。Int
ownerId: 字串。
householdId: 符號
)
data class Owner(
(
val id: 字串。
val name: String,
val address: 字串。
val telephoneNumer: Int
)
data class Household(
(
val id: 字串。
val name: String,
val address: 字串。
val region: 字串
)
什么是執行查詢的最佳方式,它將回傳Pet, Owner和Household中的所有條目,其中name包含 "Dav"
并得到一個類似于這樣的資料串列(為了簡潔起見,減去一些欄位)
并得到一個類似于這樣的資料串列。
Pet("Dave"...) // Pet
業主("David"...) /Owner
業主("Davina"...) //Owner
住戶("Davenport Close"...) //Address.
- 是否有辦法用SQLite查詢和自定義POJO來實作?
- 你是否對3個表執行3個單獨的查詢,并在更高的鏈條上將它們結合在一起(例如,Repository/Usecase與Flow)?
uj5u.com熱心網友回復:
如果你想要的只是一個LIST,那么你可以使用一個自定義POJO和一個使用UNION的查詢。
例如,你可以有一個POJO,例如:-
data class searchPOJO(
val id: 字串。
val type: 字串。
val name: String
)
和一個查詢,如:-
@Query("SELECT id, 'Pet' AS type,name FROM pet WHERE name LIKE : search UNION SELECT id, 'owner' AS type, name FROM owner WHERE name LIKE :search UNION SELECT id, 'houseide' AS type, name FROM household WHERE name LIKE :search")
抽象 fun 搜索(search: String): List<searchPOJO>
而且你會像這樣呼叫它:-
dao.search("
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/328867.html
標籤:
上一篇:我怎樣才能將enum類中的一個var和funmain中的一個var進行比較,以產生一個when陳述句?
下一篇:在不影響時間的情況下減去天數
