我正在尝试使用新的Android Persistence Room Library在两个数据库表之间创建关系.我查看了文档,并尝试实现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 { …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 android 应用程序,并在 Android 操作系统中使用新的架构组件:LiveData、ViewModel 和 Room。我对 Room 实现有一个关于创建 @Relation 的小问题,它返回 JOIN 查询(多对多关系)的结果。
我的数据库结构如下所示:
@Entity
public class Student{
@PrimaryKey
private int id;
private String name;
private String email;
}
@Entity
public class Group{
@PrimaryKey
private int id;
private String name;
}
@Entity(foreignKeys = {
@ForeignKey(entity = Student.class,
parentColumns = "id",
childColumns = "student_id"),
@ForeignKey(entity = Group.class,
parentColumns = "id",
childColumns = "group_id")
})
public class StudentGroup{
private int studentId;
private int groupId;
}
Run Code Online (Sandbox Code Playgroud)
我如何才能为特定学生获取所有组,像这样?
public class StudentWithGroups{
@Relation(parentColumn = "id", …Run Code Online (Sandbox Code Playgroud)