如何在hibernate中“有效”更新实体,就像使用SQL一样。
例如:我有一个Product实体,它有一个字段名为createTime。当我使用session.saveOrUpdate(product)时,我必须从数据库中获取这个字段,然后设置为产品,然后更新。实际上,每当我使用session.saveOrUpdate()时,我都会更新所有字段,即使我只需要更新一个字段。但是大多数时候,我们传递给DAO层的值对象并不能包含所有的字段信息,就像产品中的createDate一样,我们很少需要更新这个字段。
如何只更新选定的字段?当然,我可以使用HQL,但这将分离保存和更新逻辑。
如果Hibernate有这样的方法就更好了:
session.updateOnlyNotNullFields(product);我如何在Hibernate中做到这一点?
发布于 2011-05-04 15:41:01
如果您使用的是最新的hibernate(3.5.5),您可以原生sql,如下所示:
session.createSQLQuery("update table_name set column_1=:col1 ").executeUpdate()。这种方式不需要先加载或者先获取update.just更新,因为使用sql.Hope可以帮助你!
https://stackoverflow.com/questions/2398981
复制相似问题