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