WEB开发网
开发学院软件开发Java hibernate annoation(十一 缓存Ehcache 采用annoa... 阅读

hibernate annoation(十一 缓存Ehcache 采用annoation)

 2009-09-18 00:00:00 来源:WEB开发网   
核心提示: 四,在classpath下添加ehcache.xml 写道<ehcache><diskStorepath="java.io.tmpdir"/><defaultCachemaxElementsInMemory="10000"<!--缓存最大数目-->eter

四,在classpath下添加ehcache.xml

写道

<ehcache> 
 <diskStore path="java.io.tmpdir"/> 
  <defaultCache 
   maxElementsInMemory="10000" <!-- 缓存最大数目 --> 
   eternal="false" <!-- 缓存是否持久 --> 
   overflowToDisk="true" <!-- 是否保存到磁盘,当系统当机时--> 
   timeToIdleSeconds="300" <!-- 当缓存闲置n秒后销毁 --> 
   timeToLiveSeconds="180" <!-- 当缓存存活n秒后销毁--> 
   diskPersistent="false" 
   diskExpiryThreadIntervalSeconds= "120"/> 
</ehcache> 

测试:

Java代码   

@Entity 
@Cache(usage=CacheConcurrencyStrategy.READ_ONLY) 
public class B { 
 
 private int id; 
 private String bname; 
   
 @Id 
 @GeneratedValue(strategy=GenerationType.IDENTITY) 
 public int getId() { 
 return id; 
 } 
  public String getBname() { 
 return bname; 
 } 
  ... 
}

并配置到cfg文件中:<mapping class="com.eric.po.B" />

main方法:

Java代码  

public static void main(String[] args) throws Exception { 
 getTest(); 
        getTest(); 
  }

Java代码  

public static void getTest() throws Exception { 
  Session session = HibernateSessionFactory.getSession(); 
  Query q = session.createQuery("from B where id>?"); 
  q.setParameter(0, 10); 
  q.setCacheable(true); 需要设置此属性 
 
  List list = q.list(); 
  for (Iterator iterator = list.iterator(); iterator.hasNext();) { 
   B a2 = (B) iterator.next(); 
   System.out.print(a2.getId() + "/"); 
  } 
  HibernateSessionFactory.closeSession(); 
 }

Tags:hibernate annoation 十一

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接