JPA 二级缓存

一级缓存:
session级别,同一次session,同sql只执行一次,调用多次走一级缓存
注意:要开启事物或者手动维护一次session才会有一级缓存!!并且jps的find之类的方法不是,只有通过EntityManager执行的sql才会有一级缓存

比如:

// 一级缓存不生 效
@Test
@Transactional
public void t1() {
    userDao.findAll();
    userDao.findAll();
    userDao.findAll();
}
// 一级缓存生效
@Test
@Transactional
public void t1() {
    entityManager.find(User.class, 1l);
    entityManager.find(User.class, 1l);
    entityManager.find(User.class, 1l);
}

二级缓存:
1:实体类直接打上 javax.persistence.Cacheable 标记。
只要打上JPA的@cacheable标记即可默认开启该实体的2级缓存

@Entity  
@Table(name ="dict")  
@Cacheable  
public class Dict extends IdEntity{}  

2.ehcache来实现二级缓存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值