Hibernate使用注意事项
映射的POJO类型中如果有基本类型最好都是用包装类来代替;
注意关联关系的正确设置,一对一(主键方式、外键外键方式),一对多和多对多的配置,单向、双向的配置;
更新核心配置文件的mapping:如果是在hibernate.cfg.xml中以导入映射文件的方式配置的话,注意在增加了新的domain类之后要将新的映射配置文件加入进去;
注意hibernate管理的对象的状态:是瞬时态还是托管态?有时候事务结束了之后还去读代理对象的值,这个时候设置了延迟加载的话会报错的;
注意在一对多主键级联操作的时候外键为NOT NULL可能会引发违例操作,这就和hibernate执行sql语句有关了;
在一对多关联中,常把多的一方作为主动关联方,由它去维护关联关系;也就是将many的一方inverse=false,而且这样也有助于改善性能;维护关联关系体现在将对方的引用设置到自己的属性当中;
尽量少用多对多关联(可以用多个一对多关联来来代替多对多关联);
多对多注意设置延迟加载,避免无谓的性能开销;
多对多关系中由于关联关系是两张表相互引用,因此在保存关联状态时必须双方同时保存,体现在二者互相设置对方的引用;
一对多关系的维护可以是双方都维护,也可以是由一方维护,但是多对多中仅且仅有一方维护关系(也就是inverse的设置);
在一个session中对同一个id最多只能有一个与之对应的瞬时态对象;
在修改或这个删除的时候最好都是先查出要修改的对象,再进行操作,这样可以避免原来的关联关系;
通过引用查询可以不在代码中出现HQL/SQL语句;
对Action中对托管态对象的修改由于事务已经关闭而不会同步到数据库中;
避免查询时的SQL语句的N+1问题;
在需要的时候可以将延迟加载设置为false,在class标签中,这样在Session关了之后依然可以使用关联对象;
在编写POJO的时候,必须使用JDK的接口,而不应该使用JDK Collection的实现类,因为Hibernate返回的Set是Hibernate对Set接口的特定实现,因而会造成强转错误;
属性的延迟加载可以在<property>标签中设置,但是要对类进行加强;
Hibernate的内部缓存机制可能造成进行大量插入操作的时候OutOfMemory:可以每隔一段时间清空一次缓存;二是可以在核心配置文件的<session-factory>标签中加入<property name="hibernate.jdbc.batch_size">25</property>来进行批量插入;
hibernate中分页操作的实现;
hibenate的长对话session实现在web项目可以用Spring提供的OpenSessoinInView实现;
有问题欢迎相互探讨!
最新文章
- iOS从零开始学习直播之音频1.播放本地音频文件
- Sharepoint创建List
- ZOJ 3804 YY&#39;s Minions (简单模拟)
- 状态压缩codeforces 11 D
- jQuery1.11源码分析(7)-----jQuery一些基本的API
- EditPlus使用心得及常用快捷键
- 使用UI Automation实现自动化测试 --工具使用
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
- C# App.config 详解
- python参考手册 Read
- karma、jasmine做angularjs单元测试
- DTO学习系列之AutoMapper(六)----EntityFramework和AutoMapper的婚后生活
- 电池和Adapter切换电路改进实验(转)
- Gotorch - 多机定时任务管理系统
- 界面渐变特效 -- CSS实现 -- 兼容IE8
- ESP8266 HTTP 项目(2)HTTP网页修改WIFI连接,上电自动连接上次的WIFI。
- synchronized(八)
- Java基础整理之字节、数组、字符串、面向对象
- redis环境搭建与配置
- HPU 第三次积分赛:阶乘之和(水题)
热门文章
- 程序调控和监视(Logcat,Debug)
- Asp.Net MVC part45 过滤器、模板页
- easyui中一键清空搜索栏搜索条件的思路
- JAVA call graphs JAVA调用图
- easyui textbox获取焦点事件
- npm install -S -D -g 有什么区别
- centos7.2 kvm虚拟化管理平台WebVirtMgr部署
- 怎样在点击li时添加样式,移除兄弟样式
- zclip结合easyui实现复制datagrid每行特定单元格数据的功能
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何动态显示当前运行行