繁体   English   中英

JPA Embeddable可以有ElementCollection <Embeddable> 属性

[英]JPA Embeddable can have ElementCollection<Embeddable> property

JPA ElementCollection Embeddable可以使用ElementCollection列表嵌入属性吗?

  @Entity
  class Person {
  @ElementCollection
    private List<Address> addressList;
  }


 @Embeddable
    public class Address {
      private String city;
      private String state;
      private String countary;
    @ElementCollection
    private List<Phone> phones;

      ...
    }
    @Embeddable
    public class Phone {
      private String type;
      private String areaCode;
      private String number;
      ...
    }

是的,你可以拥有它,如果你尝试你的配置,你将有这样的东西。

http://postimg.org/image/pc0f3cxbp/

此外,Embeddable类型可以与JPA允许的其他实体具有Collection Relationship。

取自规格JSR317

可嵌入类可用于表示另一个可嵌入类的状态。

可嵌入类(包括另一个可嵌入类中的可嵌入类)可以包含基本类型或其他可嵌入类的集合。

可嵌入类可以包含与实体或实体集合的关系。 由于可嵌入类本身的实例没有持久性标识,因此引用实体的关系是包含可嵌入实例的实体,而不是嵌入本身。

用作嵌入式ID或映射键的可嵌入类不得包含此类关系

UPDATE

根据你的问题,如果embeddables可以包含一个嵌入列表,这是可能的,并且可以像这个答案中的图片那样完成, 但是关于if和ElementCollection可以包含一个与另一个元素集合的嵌入式,答案是否定的

试图这样做会导致。

映射包含一个带有禁止映射“phones”的可嵌入“examples.model.Address”,元素集合可能不包含带有元素集合映射的嵌入式

暂无
暂无

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

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