2007-08-16
对迷茫于Hibernate/JPA的人提一些建议。
想对那些“迷惑”于Java ORM框架的J2EE开发人员提一些建议,希望能够对他们
更深入的理解和运用J2EE ORM框架来提速工作有所帮助,这些建议可能显得有些”陈旧“和”肤浅“,
因为最近半年我没有再过多的关注Java ORM,并且也没有继续关注J2EE领域新进展。
在合理的使用Java ORM框架之前,必须要对他们有基本的了解,以下几点是最基本的也应该需要
深刻掌握的基础:
* 关键API接口的深刻理解,并且大致清楚其内部逻辑机制。
* 深刻理解经典对象关系与数据库表schema之间的映射关系,特别是外键的关系。理解为何需要如此建立外键。
* Session对象状态管理机制的深刻理解,受管对象的状态迁移如何进行? 受管对象的状态如何发生变化? 这些状态对应于
底层数据库何种操作(update,insert,delete)?
* 级联操作的深刻理解
* Session 和 Transaction的关系,Session和Transaction的生命周期。
* 一级缓存和二级缓存的深刻理解
* 常见的ORM异常错误产生的原因和解决方式:
>> a different object with the same identifier value was already associated with the session
>> session already closed Exception
* Lazy load对于性能优化的作用与机制。
* 在二级缓存中存在脏数据的操作陷阱。
* 性能调优的基本技巧: 观察生成的SQL,优化HQL/EQL查询。几个基本建议: SQL查询优化技巧完全
可以应用于HQL/EQL的查询,比如:合理索引的建立,注意复合索引的处理技巧,
避免过长的join,注意Join的顺序,注意where条件的顺序。
* 二级缓存的合理优化,如果二级缓存对于内存有限制,请合理设计二级缓存的使用。
* 清楚ORM和传统JDBC操作的优缺点,在Ibatis、Spring JDBC Template、ORM等框架间作合理的选择。
* 使用Spring框架的时候,深刻理解Spring的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。
更深入的理解和运用J2EE ORM框架来提速工作有所帮助,这些建议可能显得有些”陈旧“和”肤浅“,
因为最近半年我没有再过多的关注Java ORM,并且也没有继续关注J2EE领域新进展。
在合理的使用Java ORM框架之前,必须要对他们有基本的了解,以下几点是最基本的也应该需要
深刻掌握的基础:
* 关键API接口的深刻理解,并且大致清楚其内部逻辑机制。
* 深刻理解经典对象关系与数据库表schema之间的映射关系,特别是外键的关系。理解为何需要如此建立外键。
* Session对象状态管理机制的深刻理解,受管对象的状态迁移如何进行? 受管对象的状态如何发生变化? 这些状态对应于
底层数据库何种操作(update,insert,delete)?
* 级联操作的深刻理解
* Session 和 Transaction的关系,Session和Transaction的生命周期。
* 一级缓存和二级缓存的深刻理解
* 常见的ORM异常错误产生的原因和解决方式:
>> a different object with the same identifier value was already associated with the session
>> session already closed Exception
* Lazy load对于性能优化的作用与机制。
* 在二级缓存中存在脏数据的操作陷阱。
* 性能调优的基本技巧: 观察生成的SQL,优化HQL/EQL查询。几个基本建议: SQL查询优化技巧完全
可以应用于HQL/EQL的查询,比如:合理索引的建立,注意复合索引的处理技巧,
避免过长的join,注意Join的顺序,注意where条件的顺序。
* 二级缓存的合理优化,如果二级缓存对于内存有限制,请合理设计二级缓存的使用。
* 清楚ORM和传统JDBC操作的优缺点,在Ibatis、Spring JDBC Template、ORM等框架间作合理的选择。
* 使用Spring框架的时候,深刻理解Spring的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。
评论
Qieqie
2007-11-19
shaucle 写道
多实践!
不要以为某些功能或特性是想当然。
不要以为某些功能或特性是想当然。
这个建议很重要
kyo100900
2007-11-19
* 使用Spring框架的时候,深刻理解Spring的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。
这一点深有体会啊, 目前还是搞不太清楚, Spring事务管理, 郁闷.
fkpwolf
2007-11-15
说跟没说一样
----不够稳定
----不够稳定
semicircle
2007-08-17
开源的orm框架还是不够稳定
效率是关键
效率是关键
shaucle
2007-08-16
多实践!
不要以为某些功能或特性是想当然。
不要以为某些功能或特性是想当然。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 22308 次
- 性别:


- 详细资料
搜索本博客
最近加入圈子
最新评论
-
谈谈应用ORM框架针对遗留 ...
BaseService extends HibernateDAOSupport? ...
-- by sslaowan -
谁了解Paulo提出的String ...
可以用google scholar
-- by tiantian911 -
关于实现一个rails smart ...
nihongye 写道firebody 写道LRU频繁的话,性能应该会很差 不知 ...
-- by firebody -
关于实现一个rails smart ...
firebody 写道LRU频繁的话,性能应该会很差 不知道这个猜测是从哪里来的 ...
-- by nihongye -
谈谈应用ORM框架针对遗留 ...
我也经常会为了少写一些代码而使用继承,而不是用工具类,这样会在心里上有一种更直观 ...
-- by downpour






评论排行榜