想确认是否可以将实体bean绑定到表的部分列?
示例:
表" A"列id,col1,col2,col3,col4,col5,...,col10
但我只需要id,col1,col2,所以我创建了一个带有字段id,col1,col2的实体bean,并且只对这些字段进行绑定?我试过这样做但得到了:
引起:java.lang.IllegalStateException:Room无法验证数据的完整性。您似乎已更改架构,但忘记更新版本号。您可以通过增加版本号来解决此问题。
感谢是否有人可以验证是否可以使用Room Persistence Library进行上述绑定。
(注意:为什么我的表中的列没有在移动应用程序中使用。这些表模式是服务器端某些表的精确副本,因此在服务器端webapp使用了一些字段)
答案 0 :(得分:2)
返回列的子集
大多数时候,你只需要获得一个 一个实体的几个领域。例如,您的UI可能只显示一个 用户的名字和姓氏,而不是每个细节 用户。通过仅提取应用程序UI中显示的列,您就可以了 节省宝贵的资源,您的查询更快完成。
https://developer.android.com/topic/libraries/architecture/room.html
您可以定义一个没有@Entity
注释的模型,并在您的选择查询中使用它。
// No @Entity annotation here !!!
public class NameTuple {
@ColumnInfo(name="first_name")
public String firstName;
@ColumnInfo(name="last_name")
public String lastName;
}
@Dao
public interface MyDao {
@Query("SELECT first_name, last_name FROM user")
public List<NameTuple> loadFullName();
}