2009-05-27 67 views
2

我正在使用JPA,我正在爲所有參考實體使用二級緩存。 一切正常,我可以從二級緩存中獲取實體,它們之前已被選中。如何爲同一個(持久性)實體分配不同的併發策略?

現在,我有兩個應用程序,他們都使用相同的數據庫(所以他們都使用相同的表,值等)。 1.只讀應用程序只是從數據庫中讀取數據,根本不修改數據庫。因此,我選擇「READ_ONLY」併發策略作爲第二級緩存,旨在獲得更好的性能。 2.讀寫應用程序讀取和寫入數據庫的數據,它修改數據庫。因此,我必須爲第二級緩存選擇「READ_ WRITE」或「NONSTRICT_ READ_ WRITE」併發策略

但是,併發策略是在每個實體類的註釋中分配的,所以我無法以編程方式更改它。 (我不使用JPA的類映射文件,所以我不能使用兩個映射文件,每個映射文件針對同一實體類的不同併發策略)。

我的問題是,有沒有一種好方法根據我的2個不同的應用程序,隨時更改二級緩存的併發策略?

回答

0

因此,我認爲目前的解決方案是用Hibernate映射文件替換每個實體的所有註釋,以便對於不同的部署(應用程序也是如此),我們可以使用不同的Hibernate映射文件。

2

我還沒有使用Hibernate,但至少如果您使用JPA,甚至可以用部署描述符文件覆蓋單個註釋。您還應該能夠使用部署描述符覆蓋任何供應商特定的屬性。

不幸的是,我不能給你一個例子,但希望這可以幫助你。

+0

爲什麼-1?您可以從JPA規範或EJB3中獲得更多信息。我的回答應該可以幫助你前進。 – tputkonen 2009-05-28 05:48:41

相關問題