迷茫于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的事务管理机制。如果是初学,请仔细阅读文档,并反复实践。 

posted @ 2018-03-09 23:27  zhanghengscnc  阅读(180)  评论(0编辑  收藏  举报