【发布时间】:2020-07-23 07:36:32
【问题描述】:
鉴于以下数据模型(即一个客户可以有多个订单,一个订单可以有多个发货),我如何获取所有订单及其关联客户的列表以及某个订单日期的发货?
在 Kotlin 中,我想检索 List<OrderWithCustomerAndShipments> 类型的列表,其中 OrderWithCustomerAndShipments 是这样的 POJO:
data class OrderWithCustomerAndShipments(
val order: Order,
val category: Category,
val shipments: List<Shipment>
)
方法
到目前为止,我有一个返回 List<OrderWithShipments> 的方法。
注意:为简洁起见,我省略了@TypeConverter
、@ForeignKey、@ColumnInfo等
@Dao
interface Dao {
@Transaction
@Query("SELECT * FROM orders WHERE orderDate = :date")
fun getOrdersWithShipments(date: Date): LiveData<List<OrderWithShipments>>
}
data class OrderWithShipments(
@Embedded
val order: Order
@Relation(parentColumn = "id", entityColumn = "orderId")
val shipments = List<Shipment>
)
@Entity
data class Customer(
@PrimaryKey val id: Int,
val customerName: String
)
@Entity
data class Order(
@PrimaryKey val id: Int,
val customerId: Int,
val orderDate: Date,
)
@Entity
data class Order(
@PrimaryKey val id: Int,
val orderId: Int,
val shipmentDate: Date,
)
人们会假设将订单的外键解析给父客户比获取所有子发货更容易。但是,到目前为止,我试图获得父客户的尝试还没有成功。
【问题讨论】:
标签: android kotlin android-room