2011-11-04 129 views
0

在這個特定的場景中,假設我有兩個表{A,B}及其生成的JPA類。有從表A的列X中的FK關係 - >表B和表A中的此列X已經被註釋與JPA多個查詢加入

@OneToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "X", referencedColumnName = "X", insertable = false, updatable = false). 

我已經被接合在該列中的兩個表命名JPA查詢「 X」。在執行時,我得到了正確的結果,但是針對數據庫運行了多個查詢。在 連接的每個數據匹配,它似乎正在生成一個查詢並運行對數據庫。這是我們的數據庫負擔過重。根據我的理解,在LAZY獲取中,不是JPA應該只執行一次主查詢並返回整個結果集,而不是爲聯接的數據匹配產生額外的子查詢

回答

0

您不應該執行連接查詢以獲取數據。如果您指定OneToOne,Hibernate會關聯這兩個對象。 LAZY表示只有當您的對象需要需要時纔會啓動獲取鏈接對象的請求。