Итак, у меня есть 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 выше) и получите событие
Как я могу / должен go об этом?