@Embeddable 或@Entity 我们应该选择哪一个

@Embeddable or @Entity which one should we choose

假设我有一个实体 Offer,它有很多价格。

@Entity
@Table(name = "offer")
data class Offer(
   val prices: List<Price>,
   @Id
   val id: Long? = null
)

Price 设为 Entity 还是标记为 Embeddable 更有意义?万一有相同价格的报价怎么办?或许我们可以重复使用价格,或者不应该?

我正在寻找关于何时应使用 Entity 以及何时应使用 Embeddable 的良好解释。也许我们可以将它用作 Entity 但设置 orphanRemoval = true,因此在这种情况下 Price 的 child 将始终与 Offer 一起删除。

我绝对不会尝试在 Offer 之间重复使用价格。原因是您可能出于任何原因更改该价格,并且它会无意中更改所有 Offer。对我来说,这只是要求出现问题和错误。除非就您的业务案例而言有充分的理由强制要求这样做,否则我不会这样做。

写完这篇文章后,根据您提供的信息,我肯定会选择 @Embeddable,因为看起来确实如此。 Price.

有一个单独的实体和 table 非常有益