2012-06-10 78 views
2

我想編寫一個具有一對多關係的JPA實體類。我想避免在父類中定義關係,以避免每次爲對象提供引用時加載數據,即使不需要關聯數據。我已閱讀,即使使用延遲加載,數據可以加載,所以我需要避免這一點。JPA - 沒有連接列的一對多關聯

在下面的例子中,

Customer table 
------------------------ 
customerid, customerName 
1   John 
2   Bob 

順序表 - 客戶ID是一個外鍵,客戶

orderId, customerId, orderDate 
1  1   12MAY2012 
1  1   13MAY2012 
1  2   16MAY2012 

JPA實體

@Entity 
public class Customer { 

    // all Customer-related fields WITHOUT @OneToMany relationship with Order 
} 

@Entity 
public class Order { 

    String orderDate; 

    @ManyToOne 
    private Customer owner; 
} 

我怎麼會從客戶獲取數據表基於訂單表上的條件?例如,我怎麼能說「給我拿誰取得了其中訂購日期是兩個日期之間的順序所有的客戶?

+1

如果使用延遲加載,數據將不會被加載,直到它被引用爲止,似乎您正試圖解決錯誤的問題。您希望如何在不使用連接列/表的情況下創建表之間的關聯? –

+0

你有什麼試過的?你有沒有讀過關於HQL和關聯的文檔?http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhql-joins –

+0

@亞光球如果你將關係定義爲懶惰,那麼實現仍然被允許熱切地加載關係。 [JPA 2規範是這樣說的](http://docs.oracle.com/javaee/6/api/javax/persistence/FetchType.html)。 – siebz0r

回答

相關問題