data class AreaAndMedia( @Embedded val area: Area, @Relation(parentColumn = "objId" , entityColumn = "bindArea") var medias: List<Media> ) data class Mdia( @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, 不知道问题出在哪里