[英]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.