hibernate总结
来源:互联网 发布:唐嫣演技知乎 编辑:程序博客网 时间:2024/06/15 02:41
查询数据
标准化对象查询(Criteria Query):以对象的方式进行查询,将查询语句封装为对象操作。缺点:不支持投影或统计函数
hibernate查询语句:具备继承、多态和关联等
native sql queries(原生sql查询)
query接口实现分页
String sql = "from UserInfo";Query query = session.createQuery(sql);query.setFirstResult(20);query.setMaxResults(10);
inverse表示是否放弃尾部关联关系
inverse="true"表示该对象不维护关联关系
one-to-many维护关联关系就是更新外键,many-to-many维护关联关系就是在中间表增减记录;one-to-one的对象不维护关联关系
load、get、list、iterator区别
load:
在执行load()方法时,Hibernate首先从当前Session的一级缓存中获取ID对应的值,在获取不到的情况下,将根据该对象是否配置了二级缓存来做相应的处理。
如配置了二级缓存,则从二级缓存中获取ID对应的值,如仍然获取不到则还需要根据是否配置了延迟加载来决定如何执行,如未配置延迟加载则从数据库中 直接获 取。在从数据库获取到数据的情况下,Hibernate会相应地填充一级缓存和二级缓存,如配置了延迟加载则直接返回一个代理类,只有在触发代理类的调用 时才进行数据库的查询操作。
get:
在当前Session的一级缓存中获取不到指定的对象时,会直接执行查询语句从数据库中获得所需要的数据。
list:
在执行Query的list()方法时,Hibernate查询方法是首先检查是否配置了查询缓存,如配置了则从查询缓存中寻找是否已经对该查询进 行了缓 存,如获取不到则从数据库中进行获取。从数据库中获取到后,Hibernate将会相应地填充一级、二级和查询缓存。如获取到的为直接的结果集,则直接返 回,如获取到的为一些ID的值,则再根据ID获取相应的值(Session.load()),最后形成结果集返回。
iterator:
Query的iterator()方法处理查询的方式与list()方法是不同的,它首先会使用查询语句得到ID值的列表,然后再使用Session的load()方法得到所需要的对象的值。
getCurrentSession和openSession区别
getCurrentSession创建的session会和绑定到当前线程,而openSession不会;
getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
session和sessionFactory
session是非线程安全的,生命周期较短,代表一个和数据库的连接;
sessionFactory是线程安全的,一个数据库对应一个SessionFactory,保存这和数据库连接的相关信息和映射信息
- Hibernate总结
- hibernate总结
- hibernate总结
- hibernate总结
- hibernate 总结
- Hibernate总结
- Hibernate总结
- hibernate总结
- Hibernate总结
- hibernate总结
- Hibernate总结
- Hibernate总结
- Hibernate总结
- Hibernate总结
- hibernate 总结
- Hibernate 总结
- Hibernate 总结
- Hibernate总结
- Oracle普通表->分区表转换(9亿数据量)
- LTE CQI vs PMI vs RI-Difference between LTE CQI,PMI,RI
- 某公司校招笔试题 树形递归4维DP 图论 烦人的分类讨论
- Python3.5安装numpy和scripy等扩展包
- HDU 4027 Can you answer these queries? (线段树)
- hibernate总结
- Servlet-JSP相关
- Android面试常见知识点【二】(不定期更新)
- KoaHub.JS基于Node.js开发的Koa 生成验证码插件代
- Spring中ReloadableResourceBundleMessageSource的使用
- javaWeb之JAVA实现验证码的制作
- linux网络编程之socket(八):五种I/O模型和select函数简介
- Eclipse设置字符编码
- notepad++ 配置一键保存+运行