2012-06-13 48 views
0

我在我的實體上有一個主鍵(整數),但我也在這些實體上有一個UUID,我在這些實體上進行大量搜索。我想知道是否有可能使該UUID成爲關鍵,以便Hibernate(或其他)不必每次都從數據庫獲取實體,但可以首先檢查其緩存嗎?實體上的多個@Id字段/鍵

+0

休眠有兩種不同類型的高速緩存,其可以是有益的。 L2(共享)緩存(由@Id鍵入)和查詢緩存,它將緩存按值查找操作的查詢結果。聽起來這兩個人一起工作可能會給你想要的東西。 – wrschneider

+0

啊,這就對了。有什麼方法預先填充L2緩存嗎?讓我們說,如果所有的實體都被一個select查詢獲取,然後使用它們的uuid一個接一個地獲取 - 我想消除那些一個一個的提取。 –

+0

你可能會春天嗎?或者你會考慮使用它嗎?因爲Spring不像Hibernate那樣通過主鍵來提供緩存機制,而是通過任何值提供緩存機制,所以你可以在這裏指定你的UUID。 你也可以在Hibernate中實現自己的緩存機制,但這是重新發明輪子。 – JMelnik

回答