SSH快取開啟和配置
阿新 • • 發佈:2019-02-02
快取
一級快取(Session) session獨享.
二級快取(SessionFactory) session共享.
二級快取開啟方法
二級快取預設關閉,開啟方法如下:
先引入二級快取元件包和配置檔案 (hibernate-ehcache.jar/ehcache.xml)
org.hibernate
hibernate-ehcache
4.2.21.Final
修改hibernate.cfg.xml配置檔案,開啟二級快取配置
true
org.hibernate.cache.ehcache.EhCacheRegionFactory
在對映描述中指定採用二級快取
@Cache載入類定義前/加到hbm.xml中
@Entity
@Table(name=”NOTE”)
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY)
public class Note {
… …
@ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="USER_ID") @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; }
}
查詢快取開啟方法
一級和二級只能快取單個物件,查詢快取可以快取集合。
開啟方法如下:
開啟二級快取
在hibernate.cfg.xml中開啟查詢快取
true
在執行查詢語句之前,呼叫query.setCacheable(true);
Query query = session.createQuery(“from Note”); query.setCacheable(true); List list = query.list();//執行查詢