Я пытаюсь сделать запрос из таблицы posts
с внутренним соединением на users
и его соответствующим первичным и внешним ключом:
@Query("SELECT p.*, u.id AS userId, u.name AS userName, u.username AS userUsername FROM posts p JOIN users u ON p.userId = u.id")
fun fetchAllPostsAndUsers(): Observable<List<Post>>
Это POJO.Во-первых, User
:
@Entity(tableName = "users")
data class User(
@PrimaryKey(autoGenerate = true)
@SerializedName("id")
@ColumnInfo(name = "id")
val uid: Int,
val name: String,
val username: String,
val email: String,
@Embedded
val address: Address?,
val phone: String,
val website: String,
@Embedded
val company: Company?
)
и Post
:
@Entity(
tableName = "posts",
foreignKeys = [ForeignKey(
entity = User::class,
parentColumns = ["id"],
childColumns = ["userId"],
onDelete = ForeignKey.CASCADE
)]
)
data class Post(
@PrimaryKey(autoGenerate = true)
@SerializedName("id")
@ColumnInfo(name = "id")
val pid: Int,
val userId: Int,
val title: String,
val body: String
)
Но результатом вышеупомянутого запроса являются только столбцы из таблицы posts
без каких-либо столбцовиз users
', несмотря на включение в запрос при извлечении из базы данных.