【发布时间】:2019-12-05 04:57:12
【问题描述】:
我正在尝试创建一个与集合具有相同实体类型的实体。 我在数据库中有这个实体的“视图”,它有 org_id 和 root_id。实体中的 org_id 与 @Id 列映射。
在 sql 的“视图”中,我没有映射外键。是否可以以某种方式在 hibernate / JPA 中映射这个外键,或者指定一个查询来这样做?我使用的是 spring 数据,所以 JPQL 可以工作。
代码如下所示:
@Entity
@Table
public class SupplierData {
@Id
@Column(name = "org_uuid")
private String orgUUID;
@Column(name = "root_uuid")
private String rootUUID;
@ManyToOne
@JoinColumn(name="root_uuid", insertable=false, updatable=false)
private SupplierData rootSupplierData;
@OneToMany(mappedBy="rootSupplierData", fetch = FetchType.EAGER,
cascade = CascadeType.ALL)
private Collection<SupplierData> supplierDatas=new HashSet<>();
// ......
但是 findall 查询不显示任何结果。如果我删除 ManyToOne 和 OneToMany,我的所有数据都会显示出来。
我认为我在数据库中缺少外键关系,但我自己无法添加。有没有办法在 jpa 注释中映射我自己?
【问题讨论】:
-
缺少 FK 约束应该无关紧要。请发布您尝试使用的查询
标签: sql hibernate jpa join orm