我有两个会议室实体:
UserServices userServices=new UserServices();
List<UserModel> users=userServices.getAllUsers();
现在我正在尝试进行JOIN以获得这样的对象:
@Entity(tableName = LocationsTable.NAME)
data class LocationDto(@PrimaryKey val timestamp: Long,
val latitude: Double,
val longitude: Double,
val altitude: Double)
@Entity(tableName = TripsTable.NAME)
data class TripDto(@PrimaryKey(autoGenerate = true) val _id: Long,
val startTime: Long,
val endTime: Long)
位置必须包含行程实体的开始时间和结束时间之间的locationDtos。该查询应类似于:
data class TripWithLocationDto(val startTime: Long,
val endTime: Long,
val locations: List<LocationDto>)
所有文章仅描述了使用外键的实现。 谁知道如何使其工作?
答案 0 :(得分:1)
您要在要连接的实体类中创建外键,然后再创建另一个实体类,在该实体类中将要连接的两个表的字段都放入其中,并像上面在dao中一样进行连接查询。您也可以检查以下链接。在多对多关系标签中
https://android.jlelse.eu/android-architecture-components-room-relationships-bf473510c14a
您还可以访问以下位于Kotlin中的链接:-
http://danielgaribaldi.com/room-persistence-library-part-2-room-relationships/