Hibernate是一款优秀的ORM工具。但是在某些情况下难免会给我们的项目带来一定的复杂性。就算使用spring做一定的事务简化,改变的也仅仅是编写的时候更加的简单而已。特别是在处理查询的时候,hibernate和sql比较起来,就似乎没有那么大的优势了。所以在很多的项目里面在使用hibernate和spring的同时还会使用ibatis的sqlmap。
那什么时候使用hibernate比较合适呢?这个和我们的设计有很大的关系。hibernate是解决对象存储的问题的,说的通俗一点,就是根据我们设计的对象系统来替我们生成sql语句的。所以如果我们的系统是一种复杂的业务系统,并不需要大量的事务处理和复杂的查询的话。我觉得彻底的使用hibernate是比较好的选择。这样我们可以集中精力在业务的处理上。当然,我觉得这种情况不太会出现。大多数的业务系统都不会有复杂的对象结构。我再说的通俗一点,就看我们的业务里面,是注重数据处理还是注重逻辑方面的处理,前者是不太适合hibernate的。后者比较适合。如果是混合的系统的,我觉得两者都是需要的,分别完成各自的任务。有些人可能不这样认为,觉得自己的水平足够高可以用hibernate解决一切的问题,但是我觉得,这是一种偏激的想法,因为我觉得没有银弹,也没有黄金锤,世界上没有万能的东西,选择合适的工具去解决相应的问题,才是一种切实的态度。不能追求形式上的完美。