MyTable是我的Oracle DB中的一个表,它有一个CMP_ID来加入公司表。hibernate ManyToOne为什么会生成2个查询而不是1个查询?
这里是Java实现:
public class MyTable implements Serializable {
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({ @JoinColumn(name = "CMP_ID", referencedColumnName = "CMP_ID", nullable = false) })
@XmlTransient
Company company;
...
}
在我的JSP页面中,我设法显示的MyTable:
${MyTable.company.cmpName}
但是Hibernate生成2种选择: 一个为MyObject的,和另一一个是公司的名字。
如何在只有一个查询中使用Hibernate获取所需的所有信息? (在MyTable的所有领域,加上在公司表中的公司名称)
谢谢
所以,如果我读得不错,改变这种行为的唯一方法是使用自定义查询?没有其他选项/注释? – guigui42 2010-10-03 13:45:38
您也可以在查询中使用左连接,但我不认为懒惰获取会起作用。 – BillThor 2010-10-03 23:27:06