【问题标题】:Spring JPA: How should I create/use a look up table?Spring JPA:我应该如何创建/使用查找表?
【发布时间】: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


    【解决方案1】:

    我认为您不需要查找表。

    这看起来更像是"JOINED" inheritance mapping strategy 的案例。

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 1970-01-01
      • 2019-09-25
      • 2018-05-22
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多