如何在hibernate中使用hql查询进行级联保存或更新?另外我如何对某些特定字段使用级联更新而不是更新所有子表字段?
例如表用户
有用户名varchar(10)
密码varchar(10)
表 UserAccessRights 有用
户名varchar(10)用户表
密码varchar(10)用户表的 FK
Authpassword varchar(10)
级联更新应该只发生在用户名而不是密码上。我怎样才能做到这一点?
你没有。
由于级联是 Hibernate 配置事项(即 HBM 或注释),因此必须将数据返回给 Java 以处理级联。在 HQL 中进行 UPDATE/DELETE 行修改完全发生在 SQL 服务器上(并且 SQL 服务器不理解 JPA 级联,因为 JPA 是 Java API 而不是 SQL API 或 SQL 标准)。
我想你需要在你的 hbm 文件中指定你的级联设置。
<set name="columnrecord" cascade="save-update" table="..."...>
<key>
<column name="COLUMN_NAME" not-null="true" />
</key>
<one-to-many class="..." />
</set>