公司最近使用的ORM框架是JPA实现产品使用的是hibernate,曾经看过一篇博客上面说的是若是团队里面没有一个精通hibernate的人,那么最好不要使用它,我如今是深入的体会到了。可是使用什么框架不是我能决定的,若是是个人话,我宁愿使用mybatis。吐槽完来说讲出现的问题,由于咱们项目是一个电商的项目模块比较多,因此各类表关联。
用了一段时间之后,咱们发现很是的慢,打开一个页面要20多秒==!,后台一直打印sql,咱们在实体上面注解的LAZY看似并无起什么做用。各类调试各类百度可是一直找不到缘由。sql
后面今天实现受不了了。我静下来仔细分析了一下,各类调试之后,我忽然意识到,咱们的项目和一块儿拿的项目不同的地方在于如今这个项目所有是使用rest风格的。而以往只要使用了懒加载那么页面上使用到了,才会查询,由于是使用到了jsp模板,是动态的编译的,说白一点就是其实jsp就是JAVA代码。可是咱们的不同,咱们的将资源所有进行序列化操做,而后经过json将数据给传输到客户端,那么在序列化的时候,就会将全部的实体给进行序列化。大概知道缘由了之后,个人作法就是在返回的时候,动态的指定哪一些实体不须要序列化,对于那种互相关联的也忽略一边。再进行一遍操做的时候,果真不会那么慢了,最多一秒就出来了。我以为这个坑仍是必须注意一下的,不过我以为仍是没有一个精通hibernate的人的缘由。json
这个就当本身的一个总结吧,我以为,对于技术选型必定要考虑具体状况,并非好别人以为好用就选什么。最后说一句,团队没有hibernate大神,仍是少用,会被坑的要死要死的。mybatis