博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hibernate常见问题总结
阅读量:6996 次
发布时间:2019-06-27

本文共 618 字,大约阅读时间需要 2 分钟。

hot3.png

1. load和get的区别

load:  先从缓存中查找, 没有则判断是否延迟加载, 如果不是延迟加载则从数据库中查找记录, 找到返回, 没找到抛异常, 如果是延迟加载则创建代理对象,如果代理对象的initialized为false, target不为null,则, 返回对象,  否则从数据库中查找记录, 找到则将initialized置为true,并将找到的记录复制到代理对象上, 并返回, 如果没找到则抛出异常。

get: 先从缓存中查找, 如果没有则从数据库中查找, 找到则返回, 没找到返回null

2. hibernate缓存策略

cache usage="read-only,nonstrict-read-write,read-write,transactional"
read-only    只读,适用于很少变更的静态数据/历史数据
nonstrict-read-write    不严格读写缓存,如果基本不会发生有两个事务同时修改一个数据的时候,比read-write的性能要好
read-write    比较普遍的形式,效率一般
transactional    JTA中,且支持的缓存产品较少

打开了查询缓存之后,需要注意,调用query.list()操作之前,必须显式调用query.setCachable(true)来标识某个查询使用缓存

转载于:https://my.oschina.net/xiaoqqq/blog/306125

你可能感兴趣的文章