首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法扩展JPA实体以添加关系?

是否有方法扩展JPA实体以添加关系?
EN

Stack Overflow用户
提问于 2016-06-16 20:29:04
回答 1查看 617关注 0票数 0

所以我有个财产课

代码语言:javascript
复制
public class Property {
    @Id
    @Column(name="PROPERTY_ID")
    private Long propertyId;

    @Column(name="NAME")
    private String name;

    @Column(name="TYPE_CODE")
    private Integer typeCode;

    ...getters and setters...
}

用于获取提取数据库中所有属性的请求的有限信息。

但是我还想要一个类,它利用DB约束来建立关系。

代码语言:javascript
复制
public class ExportProperty extends Property {

    @ManyToOne
    @JoinColumn(name="TYPE_CODE")
    private ExportPropertyType type;

    @OneToMany(mappedBy="property", fetch=FetchType.EAGER)
    private Set<ExportPropertyPhoneNumber> phoneNumbers;

    ...getters and setters...
}

用于获取单个属性的所有数据。

这个是可能的吗?还是我需要重新考虑我的策略?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-20 17:47:11

多亏了纪尧姆F.我找到了解决办法。

我有一个包含所有公共字段的公共超级类型类。

代码语言:javascript
复制
@MappedSuperclass
public class PropertySuper {
    @Id
    @Column(name="PROPERTY_ID")
    private Long propertyId;

    @Column(name="NAME")
    private String name;

    ...getters and setters...
}

只有属性表中的数据的类。

代码语言:javascript
复制
@Entity
@Table(name = "PROPERTY")
public class Property extends PropertySuper {

    @Column(name="TYPE_CODE")
    private Integer typeCode;

    ...getters and setters...
}

和一个拥有所有JPA链接的类

代码语言:javascript
复制
@Entity
@Table(name = "PROPERTY")
public class FullProperty extends PropertySuper {

    @ManyToOne
    @JoinColumn(name="TYPE_CODE")
    private FullPropertyType type;

    @OneToMany(mappedBy="property", fetch=FetchType.EAGER)
    private Set<FullPropertyPhoneNumber> phoneNumbers;

    ...getters and setters...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37868795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档