data class AreaAndMedia(
@Embedded
val area: Area,
@Relation(parentColumn = "objId" , entityColumn = "bindArea")
var medias: List<Media>
)
data class Media(
@ColumnInfo(name = "taskId", defaultValue = "")
val taskId: String = ""
)
interface Dao {
@Transaction
@Query("select * from area where objId = :areaId")
fun selectAreaAndMediasById(areaId: String): Flow<List<AreaAndMedia>>
}
现在,我想新增一个查询方法,用意是过滤 Media ,例如
@Transaction
@Query(
"SELECT af.* FROM area af WHERE af.objId = :areaId AND EXISTS ( SELECT 1 FROM medias mi WHERE mi.bindArea = af.objId AND mi.taskId = '')"
)
fun selectAreaAndMediasWithEmptyTaskId(
areaId: String
): Flow<List<AreaAndMedia>>
但是这个结果中,仍然包含 taskId 不为空的 Media, 不知道问题出在哪里