我從兩個不同的部門兩個表:Hibernate的緩存負命中
客戶
ID
縣
國家
姓名,年齡等
費率(複合縣/州的ID)
縣
州
價格
在Hibernate中,我在複合外鍵(縣/州)上定義了@ManyToOne關係。我遵循這個: Hibernate Annotations
那麼,每個客戶都有一個縣/州,但並非每個縣/州對都代表了結算表。當我加載一些Customer實體時,我得到關係的EntityNotFoundException異常。根據我在這裏閱讀(與我同樣的問題):JBoss Forums看起來每個關係都需要在那裏,儘管你可以在@NotFound(action = IGNORE)標籤上打耳光。那麼,我也這樣做了,它沒有錯誤,但我仍然有問題。 Hibernate不會緩存否定匹配,所以如果沒有找到縣/州對,則忽略該異常,但對「缺少數據」的知識不被緩存,因此它會按需重新加載關係時間。所以,當我在關係上進行左連接獲取時,它對我沒有任何幫助。此外,批量提取不會執行任何操作,我必須一次加載一個,而且我正在談論數千個實體。
我能做些什麼來解決這個問題?數據庫設計錯了嗎?謝謝!