2010-09-13 91 views
3

我需要在我的應用程序中使用實體框架,並且我已經在Oracle數據庫中使用了表分區。使用簡單的JDBC,我可以從特定的分區中選擇數據。但我不知道我是否可以用hibernate或Eclipse鏈接(JPA)做同樣的事情。如果有人知道如何做到這一點,請讓我知道。JPA或休眠與Oracle表分區?

通常在JDBC select語句 - SQL是,

select * from TABLE_NAME partiton(PARTITON_NAME) where FIELD_NAME='PARAMETER_VALUE'; 

我該怎麼辦與Hibernate的或者JPA一樣的嗎?

請分享至少一個學習資源的鏈接。

謝謝!

回答

2

JPA或任何其他ORM框架本身不支持Oracle分區表(至少據我所知)。

有不同的解決方案,雖然,這取決於你的問題的性質:

  • 重構您的類,以便需要在現實生活中的區別對待的數據,屬於一個單獨的類。有時這稱爲垂直分區(分區不是跨行而是跨列獲得的)。
  • 在下面使用Oracle分區表並使用JPA的原生SQL查詢或存儲過程。這只是一個可能的解決方案(我沒有嘗試過)。
  • 使用Hibernate Shards。儘管Hibernate Shards的典型用例不適用於單個數據庫,但它嚮應用程序開發人員呈現了分佈式數據庫的單一視圖。

相關

  1. JPA Performance, Don't Ignore the Database
1

表分區是物理級的數據組織。總之,分區是一個窮人指數。像後者一樣,它應該對用戶完全透明。允許SQL查詢引用整個表,但不允許分區。然後,查詢優化器作業決定它是否可以利用某個分區或索引。

+0

你只能丟了這麼多的處理能力的單個數據庫服務器上。在某些時候,您需要擴展性能,可靠性或成本。分片是一個可能的解決方案。 – Mike 2011-08-16 09:18:56