Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将oneToMany与jointable but一起使用,将其映射到子实体_Java_Hibernate_Jointable - Fatal编程技术网

Java 将oneToMany与jointable but一起使用,将其映射到子实体

Java 将oneToMany与jointable but一起使用,将其映射到子实体,java,hibernate,jointable,Java,Hibernate,Jointable,我有这样的情况,我的地图 @OneToMany @OrderBy(value="id desc") @JoinTable(name="EntityOne", joinColumns = @JoinColumn(name="EntityTwo_id", referencedColumnName="id"), inverseJoinColumns = @JoinColumn(name="EntityThree_id", referencedColumnName="id")) private List

我有这样的情况,我的地图

@OneToMany
@OrderBy(value="id desc")
@JoinTable(name="EntityOne",
joinColumns = @JoinColumn(name="EntityTwo_id", referencedColumnName="id"), inverseJoinColumns = @JoinColumn(name="EntityThree_id", referencedColumnName="id"))
private List<EntityThree> samples = Lists.newArrayList();
@OneToMany
@订购人(value=“id desc”)
@JoinTable(name=“EntityOne”,
joinColumns=@JoinColumn(name=“EntityTwo\u id”,referencedColumnName=“id”),inverseJoinColumns=@JoinColumn(name=“EntityTwo\u id”,referencedColumnName=“id”))
private List samples=Lists.newArrayList();
这很好,但是,我想知道是否有办法将其映射到EntityThree的子实体。例如,获得

 private List<SubEntity> samples = Lists.newArrayList();
private List samples=Lists.newArrayList();
其中,子实体是从EntityThree.getSubEntity获取的 基本上,子实体存在于EntityThree中


提前感谢您的帮助,如果我不清楚的话,我非常想澄清一下。

实体中映射的字段应该与数据库表中的实际字段相匹配。似乎上面的实体和EntityThree之间有关联,但这个实体和子实体之间没有关联。因此,DB级别上不存在的关联在实体级别上也不应该存在

但您的实体可能有一些方法,可以导航到实体图中:

public List<SubEntity> getSubEntities() {
    List<SubEntity> result = Lists.newArrayListWithExpectedSize(samples.size());
    for (EntityThree sample : samples) {
        result.add(sample.getSubEntity());
    }
    return result;
}

实体中映射的字段应该与数据库表中的实际字段相匹配。似乎上面的实体和EntityThree之间有关联,但这个实体和子实体之间没有关联。因此,DB级别上不存在的关联在实体级别上也不应该存在

但您的实体可能有一些方法,可以导航到实体图中:

public List<SubEntity> getSubEntities() {
    List<SubEntity> result = Lists.newArrayListWithExpectedSize(samples.size());
    for (EntityThree sample : samples) {
        result.add(sample.getSubEntity());
    }
    return result;
}

子实体是如何映射的?它是一个完整的@实体,有自己的DB表吗?一个@组件?显示子实体的类定义和Hibernate注释可能会澄清这个问题。子实体是如何映射的?它是一个完整的@实体,有自己的DB表吗?一个@组件?显示子实体的类定义和Hibernate注释可能会澄清这个问题。
select sub from MyEntity m 
inner join m.samples sample 
inner join sample.subEntity sub
where m.id = :theId