繁体   English   中英

在JPA / Spring Boot中重用实体

[英]Reusing entities in JPA/Spring Boot

我有一个无法修改的现有实体如下所示:

@Entity
public class ChildEntity implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@Column(name="id")
private String id;
@Column(name="name")
private String name;
//getters, setters, et al.

我有一个新查询,该查询返回与上述相同的数据, 并带有以下额外的列

@Entity
public class ParentEntity implements Serializable{
private static final long serialVersionUID = 1L;
@Column(name="extra")
private String extra;
@Id
@Column(name="id")
private String id;
@Column(name="name")
private String name;
//getters, setters, et al. from child

如上所示,我想将上述类简化为以下形式:

@Entity
public class ParentEntity implements Serializable{
private static final long serialVersionUID = 1L;
@Column(name="extra")
private String extra;
@Embedded
private ChildEntity entity; //ChildEntity will have annotation @Embeddable
//getters, setters, of extra param

但是,当我运行将数据分配给ParentEntity列表的本机查询时,它无法识别ChildEntity

我的查询将是这样的:

ChildEntity: select name,id from table where (/*some condition*/)
ParentEntity: select extra,name,id from table where (/*some condition*/)

我该怎么做呢?

如果您阅读37.1.6实体中的可嵌入类

可嵌入类用于表示实体的状态,但与实体类不同,它们没有自己的持久身份。

回顾您的实体,您可能需要@MappedSuperclass@Inheritance具体取决于您的模型关联。 该线程清楚地说明了这一点。

暂无
暂无

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

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