spring data jpa使用二级缓存
来源:互联网 发布:淘宝详情页ps怎么切片 编辑:程序博客网 时间:2024/05/22 03:43
在用spring data jpa的过程中,采用了ehcache 来做缓存, 是否需要二级缓存,一般不需要,这得看业务的需要,因为这东西如果配置不好,反而会导致性能下降,但如果是有些数据,基本不改动,长期不变,很少修改,而且数据量适中,并且外部使用频率高的情况下,还是可以使用的。就目前研究spring data jpa 来说,有三种情况下有可能会使用到缓存
1. spring data jpa 自身的方法
2. 扩展spring data jpa 的方法
3.完全自己用EntityManager 写语句的缓存.
其实现方式,基本如下,用代码表示
如果是自己写语句的缓存,用如下方式
原文来自:
当然在实体类上也要注明,使用缓存
至于ehcache 的配置很简单的几行xml 配置,比如
在这几种情况下,测试,一旦缓存之后,是看不到发出sql语句的,说明确实使用了缓存.
1. spring data jpa 自身的方法
2. 扩展spring data jpa 的方法
3.完全自己用EntityManager 写语句的缓存.
其实现方式,基本如下,用代码表示
public interface UserDao extends CrudRepository<User,Long>,UserCustomer{ /** * 第一种情况的缓存,处理spring data jpa自身的方法 * @param id * @return */ @QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") }) public User findById(long id); /** * 第二种情况缓存,处理能根据 spring data jpa 扩展的方法. * @return */ @Query("from User") @QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value ="true") }) List<User> findAllCached(); }
如果是自己写语句的缓存,用如下方式
public class UserDaoImpl implements UserCustomer { @PersistenceContext private EntityManager em; /** * 第三种缓存,采用 setHint 的方式处理. */ public User findByCustomizeId() { return (User) em.createQuery("from User p where p.id=1") .setHint("org.hibernate.cacheable", true).getSingleResult(); }
原文来自:
当然在实体类上也要注明,使用缓存
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY,region="mycache")@Cacheable(true)@Entity@Table(name="XUSER")public class User {...........}
至于ehcache 的配置很简单的几行xml 配置,比如
<ehcache> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> <cache name="mycache" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="18000" timeToLiveSeconds="36000" overflowToDisk="false" /></ehcache>
在这几种情况下,测试,一旦缓存之后,是看不到发出sql语句的,说明确实使用了缓存.
阅读全文
0 0
- spring data jpa使用二级缓存
- spring data jpa使用二级缓存
- Spring Data JPA 使用
- spring-data-jpa 使用
- spring data jpa使用
- spring-data-jpa 使用
- Spring Data JPA使用
- spring-data-jpa 使用
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- 使用 Spring Data JPA 简化 JPA 开发
- layer中父子层的信息交互
- Linux 调试器之处理变量!
- Logistic Regression及python实现
- Java基础总结
- ShadowImageView 阴影效果
- spring data jpa使用二级缓存
- C++的发展
- 关于电源去耦
- bzoj1951 [Sdoi2010]古代猪文 ( 欧拉定理+CRT+lucas )
- ARM汇编伪指令
- 模拟实现strcpy函数
- 大数据分析:某日头条搜索java的分词报告
- Spring如何处理线程并发
- 数据结构 哈夫曼树