我想在HQL中编写以下SQL,因此它作为单个语句执行:
update child_thingy c
set c.parent_thingy_id = null
where c.common_thingy_id = @common_thingy_id
delete
from parent_thingy p
where p.common_thingy_id = @common_thingy_id
我已将SQL翻译成HQL,如下所示:
update ChildThingy c
set c.ParentThingy = null
where c.CommonThingy = :commonThingy
delete
from ParentThingy p
where c.ParentThingy = :commonThingy
我想将它作为单个语句运行,但我不能在使用CreateQuery&的单个HQL块中运行。 executeUpdate的。我无法在MultiQuery块和List中运行它,因为我得到以下异常:
System.NullReferenceException: Object reference not set to an instance of an object.
at NHibernate.Impl.MultiQueryImpl.AggregateQueriesInformation()
at NHibernate.Impl.MultiQueryImpl.get_Parameters()
at NHibernate.Impl.MultiQueryImpl.CreateCombinedQueryParameters()
at NHibernate.Impl.MultiQueryImpl.List()
我似乎无法找到与ExecuteUpdate等效的MultiQuery。有任何想法吗?
答案 0 :(得分:0)
似乎不可能(在NH 2.1.2中),因此不得不求助于使用CreateSQLQuery和ExecuteUpdate :(