使用Hql或条件,如何更新多行并将属性设置为false?
即。 SQL将是:
更新UserOrders SET isDeleted = 0 - (布尔值false) 在哪里uID = 234
答案 0 :(得分:1)
如果你没有以任何其他方式使用业务对象,我认为在这种情况下我会绕过NHibernate。即:不使用HQL,而是发出本机SQL查询。 (NHibernate允许你这样做;检查ISession的CreateSQLQuery)。
我为什么要这样做? 因为,当您使用HQL发出此类查询时,我认为NH将从数据库中获取每个实体,更改其属性,然后更新其对应的行。想象一下性能的提升。 但是,我认为HQL不支持UPDATE查询(但我可能会误认为那个)。