繁体   English   中英

@ElementCollection 在 @OneToMany 上,反之亦然

[英]@ElementCollection over @OneToMany or vice-versa

假设我确实有一个Offer实体。 它有一个可以是Salary对象列表的属性salaries Salary没有Offer就不能存在,所以这是否意味着我应该使用@ElementCollection或不可以? 我们应该何时使用@ElementCollection以及何时使用@OneToMany 当我们谈论@Embeddable@Embedded时,我会想到同样的问题,是否值得使用它,或者拥有@OneToOne关系会更好。

class Salary(
    val salary_from: Integer,
    val salary_to: Integer,
    val salary_type: Type
)

class Offer(
    @ElementCollection
    @CollectionTable(name = "offer_salaries", joinColumns = @JoinColumn(name = "offer_id"))
    @OrderColumn
    @Column(name = "salaries")
    val salaries: List<Salary>;
)

@OneToMany适用于当您想将 map 作为实体添加到数据库表时。 @ElementCollection :您可以将其视为用于映射非实体的常规集合。

参考: @OneToMany 和 @ElementCollection 之间的区别?

EG:你有一个Perfume实体,它有2列表。

  • 气味- 是一个属性列表(应该是@ElementCollection ),因为它包含一些不是实体的属性。
  • 客户- 是一个实体列表(应该是@oneToMany ,因为它应该被映射为一个实体)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM