我需要更新加入的子类。因为hibernate不允许更新hql或命名查询中加入的子类,所以我想通过sql来完成。我也不能使用sql命名查询,因为hibernate不支持通过命名查询进行更新。
所以我决定使用sqlquery。但是hibernate抱怨没有调用addScalar():
在执行查询之前,必须对SQL查询调用addentity()或addscalar()。
更新是否返回受影响的行数以及如何命名该列?
有没有其他方法可以更新hibernate中加入的子类?
下面是我要做的一个简单的例子:
<hibernate-mapping>
<class name="example.NiceClass" table="NICE_CLASS">
<meta attribute="class-code"></meta>
<id name="id" type="java.lang.Long">
<column name="NICE_CLASS_ID" precision="8" />
<generator class="sequence">
<param name="sequence">NICE_CLASS_SEQ</param>
</generator>
</id>
</class>
</hibernate-mapping>
<hibernate-mapping package="example">
<joined-subclass name="SubJoinedClass" table="SUB_JOINED_CLASS"
extends="NiceClass">
<key column="NICE_CLASS_ID" foreign-key="NICE_JOINED_ID_FK"/>
<property name="name" type="string" not-null="false">
<column name="NAME" >
<comment>name</comment>
</column>
</property>
</joined-subclass>
</hibernate-mapping>
提前谢谢!
所以我想做一个:
update SubJoinedClass set name = 'newName'