【发布时间】:2020-08-23 07:42:10
【问题描述】:
所以我有 2 个不同的实体:
@Entity
data class PickupOrderEvent(
@Id
override val id: UUID,
@Enumerated(EnumType.STRING)
@Column(nullable = false)
override val eventType: EventType,
// other fields...
)
@Entity
data class DeliveryOrderEvent(
@Id
override val id: UUID,
@Enumerated(EnumType.STRING)
@Column(nullable = false)
override val eventType: EventType,
// other fields... different than PickupOrderEvent
)
这两个都继承自父类OrderEvent,但它们有其他(不同的)字段。
我最终想要做的是接收OrderEvent id,并从其各自的表中获取该事件。但是,我不想查看这两个表(以及后来的更多表)来确定类型是什么。
我在这里想象的正确答案是创建一个看起来像这样的“查找表”:
Events(
val eventId: UUID, // FK to the other tables PK
val eventType: EventType
)
所以我会做以下事情:
1- 查看此表,找出此订单的 eventType 是什么。
2-查看各个表(取决于上面的eventType)并获取事件
我可以/应该怎么做?
【问题讨论】:
标签: spring jpa kotlin spring-data-jpa