hibernate生成的sql语句只set,有变化的字段。这样确实会从一定程度上提高性能。
可是 动态更新的问题是查询和更新必须同时在一个相同的session中,否则hibernate无法判断这是不是一个相同的对象 。可是实际上我们用更新基本上都是查询出来之后,在前台做一些从新的赋值,在放到一个专有的update方法里更新。这样动态update的功能意义不大了。怎么办呢?大家还记得吗HibernateSessionFactory中的session都是单例的这样,我们要DAO层的查询和更新不关闭session.close,将关闭session的任务交给业务逻辑层来完成不就解决了这个问题吗。