(一)
在hibernate-release-4.2.21.Final\project\etc目录下找到ehcache.xml文件,复制到项目的src目录下。
ehcache.xml中的内容(使用时记得把注释去掉)
<defaultCache
maxElementsInMemory="10000" <!-- 可以缓存的对象数量 -->
eternal="false" <!-- 是否永久保存 -->
timeToIdleSeconds="120" <!-- 最大闲置时间 没有访问情况下最多存活时间 -->
timeToLiveSeconds="1200" <!-- 最大存活时间 不管有没有访问 最多存活这个时间 -->
overflowToDisk="true" <!-- 内存溢出则存到硬盘 -->
/>
(二)
引入hibernate-release-4.2.21.Final\lib\optional\ehcache目录下所有jar包
(三)
配置文件
Hibernate4
<property name="cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
Hibernate3
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
(四)
添加@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)//可读可写
@Entity
@Table(name = "t_group")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Group {
private int id;
private String name;
private List<User> users = new ArrayList<User>();
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(mappedBy = "group", cascade = CascadeType.ALL
// fetch=FetchType.EAGER
)
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}