`
1028826685
  • 浏览: 950229 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

其他问题

阅读更多
知识点:


hibernate.cfg.xml和hbm.xml内容解释
数据类型
1.<property name=“name” type=“java.lang.String”/>
  type可以是hibernate、java类型或者你自己的类型(需要实现hibernate的一个接口)。
2.基本类型一般不需要在映射文件(hbm.xml)中说明,只有在一个JAVA类型和多个数据库数据类型相对应时并且你想要的和hibernate缺省映射不一致时,需要在映射文件中指明类型(如:java.util.Date,数据库DATE,TIME,DATATIME,TIMESTAMP,hibernate缺省会把java.util.Date映射成DATATIME型,而如果你想映射成TIME,则你必须在映射文件中指定类型)。
3.数据类型的对应关系见参考文档5.2.2
Session是非线程安全的,生命周期较短,代表一个和数据库的连接,在B/S系统中一般不会超过一个请求;内部维护一级缓存和数据库连接,如果session长时间打开,会长时间占用内存和数据库连接。
SessionFactory是线程安全的,一个数据库对应一个SessionFactory,生命周期长,一般在整个系统生命周期内有效;SessionFactory保存着和数据库连接的相关信息(user,password,url)和映射信息,以及Hibernate运行时要用到的一些信息。

flush时将一级缓存与数据库同步
大批处理
大量操作数据时可能造成内存溢出,解决办法如下:
1.清除session中的数据
for(int i=0;i<100000;i++)session.save(obj);
for(int i=0;i<100000;i++){
session.save(obj);
if(i% 50 == 0){session.flush(); session.clear();}
}
2.用StatelessSession接口:它不和一级缓存、二级缓存交互,也不触发任何事件、监听器、拦截器,通过该接口的操作会立刻发送给数据库,与JDBC的功能一样。
StatelessSession s = sessionFactory.openStatelessSession();该接口的方法与Session类似。
3.Query.executeUpdate()执行批量更新,会清除相关联的类二级缓存(sessionFactory.evict(class)),也可能会造成级联,和乐观锁定出现问题

HQL
1查询多个对象select art, user from Article art, User user where art.author.id=user.id and art.id=:id这种方式返回的是Object[],Object[0]:article,Object[1]:user。
2分页query.setFirstResult,query.setMaxResults.
  查询记录总数query.iterate(“select count(*) from Person”).next()
3批量更新query.executeUpdate()可能造成二级缓存有实效数据。
Criteria
1排序Criteria.addOrder(Order.desc(propertyName));
2关联查询criteria.setFetchMode(“propertyName”, FetchMode.SELECT)与映射文件中关联关系的fetch作用一致。
3投影Projections.rowCount(),max(propertyName), avg, groupProperty…
4分页Projections.rowCount(),criteria.setFirstResult(),criteria.setMaxResults()
5DetachedCriteria可在session外创建(在其他层创建比如在Service中创建)然后用getExecutableCriteria(session)方法创建Criteria对象来完成查询。
6Example查询,Example.create(obj);criteria.add(example)。

N+1次查询和懒加载
1.用Query.iterator可能会有N+1次查询。
2.懒加载时获取关联对象。
3.如果打开对查询的缓存即使用list也可能有N+1次查询。
拦截器与事件
拦截器与事件都是hibernate的扩展机制,Interceptor接口是老的实现机制,现在改成事件监听机制;他们都是hibernate的回调接口,hibernate在save,delete,update…等会回调这些类。
SQL和命名查询
用Map代替Domain对象;将对象转化为XML。



Hibernate不适合的场景:

不适合OLAP(On-Line Analytical Processing联机分析处理),以查询分析数据为主的系统;适合OLTP(on-line transaction processing联机事务处理)。
对于些关系模型设计不合理的老系统,也不能发挥hibernate优势。
数据量巨大,性能要求苛刻的系统,hibernate也很难达到要求, 批量操作数据的效率也不高。


分享到:
评论

相关推荐

    参考资料-1.9 与本工程有关的其它问题.zip

    "参考资料-1.9 与本工程有关的其它问题.zip"这个文件名表明这可能是一个包含与某个工程项目相关问题解答的压缩文件。让我们深入探讨一下这个标题、描述以及压缩包内的文件可能涵盖的内容。 标题中的“参考资料”...

    与本工程有关的其它问题.doc

    与本工程有关的其它问题.doc

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题.ppt

    模拟电子技术基础:第20讲 放大电路中反馈的其它问题.ppt

    组合优化问题 (组合数学)

    这是组合优化中的一个重要问题,因为很多其他问题可以转化为SAT问题。 **串行算法描述**:通常采用回溯搜索的方法,逐个尝试不同的变量赋值,直到找到满足条件的赋值或者穷尽所有可能性。 **并行算法描述**:在...

    QB-F01软件问题报告

    可能的问题来源包括程序(代码逻辑错误)、数据库(数据不一致或查询问题)、文件(读取、写入或存储问题)以及其他因素(如用户界面交互、系统配置等)。这有助于开发人员快速确定问题所在的领域。 2. **问题描述*...

    背包问题九讲.pdf

    第九讲背包问题问法的变化,是指背包问题的表述可能因为问题实际需求的不同而有所变化,比如要求解不同限制条件下的背包问题,或者背包问题与其他问题的结合。变化的问法要求我们在解题时具备更强的分析能力,以便...

    首席赚钱省钱专家小程序1.5.8+前端+修复商品和搜索关键词显示异常的问题

    首席赚钱省钱赚钱小程序源码更新介绍: 版本号:1.5.8 – 赚钱单开版 此次更新需要上传小程序审核 如有其它问题,请及时联系客服帮您处理 对后台小程序设置-其他设置-首页商品列表布局 进行重新设置1.[紧急修复] ...

    46种常见的浏览器兼容性问题大汇总

    7. **其他问题**:还包括`input.type`属性、`event.srcElement`、body载入事件、table操作、对象宽高设置等,需针对不同浏览器进行相应处理。 **CSS兼容性问题** 1. **cursor样式**:`cursor:hand`在IE中有效,...

    天思软件的问题集

    2.9操作系统或是其他问题汇集 71 附件1--基本财务操作流程 80 1.1财务流程 80 1.2操作明细 80 会计科目维护 80 凭证录入 82 凭证审核 83 凭证过账 83 生产制造费用结转生产成本 84 损益结转 85 月末调汇 86 月末结帐...

    首席赚钱省钱专家小程序1.5.8+前端+修复商品和搜索关键词显示异常的问题.zip

    此次更新***需要***上传小程序审核 如有其它问题,请及时联系客服帮您处理 对后台小程序设置-其他设置-首页商品列表布局 进行重新设置 1.[紧急修复] 商品显示和搜索关键词显示异常的问题 版本号:1.5.7 – 赚钱...

    管家婆常见问题解决处理方案.pdf

    八、其他问题 * 问题:零售单按照批次销售? * 解决方案:POS版本零售开票的时候不能选择批次,直接通过零售设置--出库规则进行批次出库,软件自带的POS模式、普通模式下,直接过情 况可以选择批次,并且商品的成本...

    售后服务问题处理流程规范

    - **其他问题**:包括但不限于软件异常、数据库错误、网络问题等。 #### 二、问题处理原则 1. **一般咨询**:对于简单的使用咨询,工作人员将通过电话或微信立即给予解答。 2. **问题与需求处理顺序**:优先处理...

    银河麒麟桌面操作系统V10常见问题解析与技术支持指南

    内容概要:本文档详尽解答了银河麒麟桌面操作系统 V10 常见问题,涵盖安装、启动、登录、激活、权限、版本、软件安装、外设使用、手册问题、显示问题、网络问题、输入问题、挂卸载问题、应用问题及其他问题等多个...

    求解连续优化问题的多策略动态果蝇优化算法.docx

    如财务困扰模型求解、多维背包问题、神经网络训练、连续数学函数优化问题、电荷预测、PID 控制器参数调整、半导体最终测试、联合补货问题等,以及科学和工程领域中的许多其他问题。 三、多策略动态果蝇优化算法 ...

    回溯法实验报告

    其他问题的解决也采用类似的结构,通过回溯算法实现解空间的遍历和剪枝。 通过这三个问题的解决,学生能够理解回溯法在实际问题中的应用,如装载问题的优化、n皇后问题的解决以及图着色问题的处理。同时,实验还...

    背包问题9讲

    9. 背包问题问法的变化:作者可能会讨论背包问题的不同变体以及如何将基本的背包问题的思想应用到其它类型的问题中。这种变化可能体现在不同的约束条件下,也可能涉及到不同的优化目标。 附录中提及的内容为:USACO...

    彻底解决vcruntime140.dll找不到的问题

    1. 清理系统注册表中与vcruntime140.dll相关的条目,但要谨慎操作,因为误删可能会导致其他问题。 2. 使用系统还原点恢复到问题出现前的状态。 3. 检查是否有其他软件冲突,如安全软件阻止了dll文件的加载。 4. 如果...

Global site tag (gtag.js) - Google Analytics