當前位置:首頁 » 硬碟大全 » jpa添加緩存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jpa添加緩存

發布時間: 2023-04-16 08:31:08

㈠ 如何在JPA,Hibernate 和 Spring 中配置 Ehcache 緩存

<ehcache:annotation-driven />

<ehcache:config cache-manager="cacheManager">
<ehcache:evict-expired-elements
interval="李含陪60" />
</ehcache:config>

<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml" />
</bean>

</beans>老困

需要緩存的對象在或service加上@Cacheable(cacheName="baseCache")
需要刪除更哪蠢新加上@TriggersRemove(cacheName="baseCache",removeAll=true)

㈡ JPA的幾個常用方法

1. persist():將臨時狀態的對象保存進資料庫。【插入一條新記錄】
//由於涉及資料庫增刪改,執行該語句前需啟用事務
entityManager.persist(modelObject);
2.merge():將對象存入資料庫,不同於persist(),merger()對於操作的對象,如果對象存在於資料庫則對對象進行修改,
如果對象在資料庫中不存在,則將該對象作為一條新記錄插入資料庫。
entityManager.merge(modelObject);
3.find()與getReference():查找對象。不同點:
當對象不存在時,find()返回null, getReference()會拋出javax.persistence.EntityNotFoundException異常
4.remove():將對象從資料庫中刪除。
entityManager.remove(entityManager.getReference(ModelObject.class,key));
5.refresh(Object obj):重新從資料庫中讀取數據。
6.contains(Object obj):判斷對象是否在資料庫中存在,返回true \ false。
7.flush():立即寫入資料庫。
執行persist()、merger()時,數據並不是立即寫入資料庫中,
而是由JPA緩存起來,在執行flush()時寫入。
在事務提交的時候,JPA會自動執行flush()一次性保存所有數據。
如果需要立即保存,可手動執行flush()。

setFlushModel():修改EntityManager的Flush模式。

EntityManager的Flush模式默認為FlushModel.AUTO,這種模式下,在執行查詢
(指使用JPQL語句查詢時,不包括find()和getReference()查詢)或事務提交時自動執行flush()。通過setFlushModel( FlushModel f )設置為FlushModel.COMMIT,該模式下只有在事務提交時才會執行flush()寫入資料庫。

㈢ spring data jpa lazy載入有緩存嗎

應該是沒緩存的,每次都會查表,要自己寫緩存,你可以把show sql開起來,就能看到執行幾次了。