39

新しい Android Persistence Room Library を使用して、2 つのデータベース テーブル間の関係を作成しようとしています。ドキュメントを見て、https://developer.android.com/reference/android/arch/persistence/room/Relation.htmlにある例を実装しようとしました:

 @Entity
 public class User {
 @PrimaryKey
     int id;
 }

 @Entity
 public class Pet {
     @PrimaryKey
     int id;
     int userId;
     String name;

 }

 @Dao
 public interface UserDao {
     @Query("SELECT * from User")
     public List<User> loadUser();
 }

 @Dao
 public interface PetDao {
     @Query("SELECT * from Pet")
     public List<Pet> loadUserAndPets();
 }


 public class UserAllPets {
     @Embedded
     public User user;
     @Relation(parentColumn = "user.id", entityColumn = "userId", entity = Pet.class)
     public List pets;
 }

 @Dao
 public interface UserPetDao {
     @Query("SELECT * from User")
     public List<UserAllPets> loadUserAndPets();
 }

次のエラーが表示されます

    ...error: Cannot figure out how to read this field from a cursor.

に関して:

 private java.util.List<?> pets;

私は、彼らのドキュメントのいくつかの点が本当に混乱していることを指摘したいと思います. たとえば、エンティティであるはずですが、クラスに注釈がないことと、それが欠落して@PrimaryKeyいるという事実(私が見る限り)。誰かが同じ問題に遭遇しましたか?事前にどうもありがとうUser@Entity

4

1 に答える 1