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