Android Room的部分实体绑定

时间:2017-06-29 07:57:28

标签: android-room

想确认是否可以将实体bean绑定到表的部分列?

示例:

表" A"列id,col1,col2,col3,col4,col5,...,col10

但我只需要id,col1,col2,所以我创建了一个带有字段id,col1,col2的实体bean,并且只对这些字段进行绑定?我试过这样做但得到了:

引起:java.lang.IllegalStateException:Room无法验证数据的完整性。您似乎已更改架构,但忘记更新版本号。您可以通过增加版本号来解决此问题。

感谢是否有人可以验证是否可以使用Room Persistence Library进行上述绑定。

(注意:为什么我的表中的列没有在移动应用程序中使用。这些表模式是服务器端某些表的精确副本,因此在服务器端webapp使用了一些字段)

1 个答案:

答案 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();
}