Android Room:包括嵌套对象的字段作为列

Faw*_*ran 3 android entity-relationship android-room

假设我有一个Patient实体,存储患者 ID、一个布尔值和一个Person对象。所以我注释这些字段@ColumnInfo以存储在数据库中。

现在 aPerson有 2 个字符串字段:名字和姓氏。

但是,在我的patients表中,我希望有一个列直接用于名字和姓氏字段(来自Person),因此我希望能够从查询中调用 eg firstName(而不必调用Person.firstName)。我怎样才能做到这一点?

sil*_*war 12

您可以使用Room 的@Embedded注释。

在您的情况下,它将如下所示

   public class Person {
       String firstName;
       String lastName;
   }

   public class Patient {
       int patientId;//just an assumption
       @Embedded
       Person person;
   } 
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看 注意:为简洁起见,我没有提供其他注释,例如@ColumnInfo

  • 是的。Room 允许嵌套的嵌入对象 (4认同)