要解决“Android Room DB 找不到包含另一个实体列表的现有列”的问题,你需要确保你的数据库中包含了所需的列。以下是一个解决方法的代码示例:
首先,定义一个包含实体列表的实体类:
@Entity
public class ParentEntity {
@PrimaryKey
public int id;
public String name;
@Relation(parentColumn = "id", entityColumn = "parentId", entity = ChildEntity.class)
public List children;
}
@Entity
public class ChildEntity {
@PrimaryKey
public int id;
public int parentId;
public String childName;
}
接下来,在你的数据库中创建一个包含列表的查询方法:
@Dao
public interface MyDao {
@Transaction
@Query("SELECT * FROM ParentEntity")
public List getParentsWithChildren();
}
最后,在你的数据库类中添加对应的方法:
@Database(entities = {ParentEntity.class, ChildEntity.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {
public abstract MyDao myDao();
}
现在,当你调用myDao().getParentsWithChildren()
方法时,Room DB 将会返回一个包含父实体和其对应子实体列表的查询结果。
希望这个示例可以帮助你解决问题!