ManyToOne和OneToOne有相同的实体吗?

时间:2016-05-14 15:53:16

标签: spring hibernate jpa spring-data spring-data-jpa

我有2个表,我想知道是否可以与同一个实体建立多个关系。特殊子项是一个entity2,类型=“specialType”。

@Entity
public class entity1 {
    // properties
    @OneToMany
    private Set<entity2> children;
    @OneToOne
    private entity2 specialChild;
}

@Entity
public class entity2 {
    private String type;
    @ManyToOne
    private entity1 parent;
}

如果无法映射(过滤器?),有没有办法注释specialChild属性@Transient并填入查询?

类似的东西:

select e, sc from entity1 e 
    inner join entity2 sc on sc.parent.id = e.id and sc.type = "specialType"

我目前在获取entity1后在一个单独的db调用中设置entity1的specialChild。

public getEntity1(int id) {
    Entity1 e = entity1Repository.findById(id);
    e.setSpecialChild(
        entity2.findByParentIdAndType(e.id, "specialType")
    );
    return e;
}

我正在使用spring数据和休眠。

0 个答案:

没有答案