新しい 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