根据此处的链接,
我正在使用旧数据库,我正在努力帮助我帮助我。
我有3个桌子,看起来像:
Table results:
id (number pk)
info_id (varchar)
result (varchar)
Table info
id (number pk)
info_id (varchar)
Table registration
id (number pk)
Table letter
id (number pk)
registration_id
我只能修改对象的字母,在此对象中,我希望能够获得(仅读)结果
public class Letter {
private Long id;
private Registration registration;
private List<Result> results;
}
注册对象已经存在,看起来像这样:
public class Registration {
private Long id;
private Info info;
}
我正在尝试将结果对象映射到字母对象,而我正在尝试这样的东西:
<list name="results" table="result" cascade="none" inverse="false">
<key property-ref="registration.info.info_id"/>
<index column="info_id " />
<one-to-many class="Result" />
</list>
我基本上希望Hibernate通过一系列对象进行连接,并最终得到一个看起来像:
的SQLSELECT * FROM result,letter,info WHERE letter.info_id=info.info_id AND info.info_id=result.info_id
AND letter.id=?;
在休眠中有这样的可行吗?
编辑:表信息和注册具有相同的ID。所以info.id=registration.id
。如果需要,我可以将信息添加到字母对象中。
。只有使用内部连接才能维持关系。所以,是的,您可以做到。您可能必须将注册。ID= info.ID手动添加到查询中。