0

如何在hibernate中使用hql查询进行级联保存或更新?另外我如何对某些特定字段使用级联更新而不是更新所有子表字段?

例如表用户
有用户名varchar(10)
密码varchar(10)

表 UserAccessRights 有用
户名varchar(10)用户表
密码varchar(10)用户表的 FK
Authpassword varchar(10)

级联更新应该只发生在用户名而不是密码上。我怎样才能做到这一点?

4

2 回答 2

2

你没有。

由于级联是 Hibernate 配置事项(即 HBM 或注释),因此必须将数据返回给 Java 以处理级联。在 HQL 中进行 UPDATE/DELETE 行修改完全发生在 SQL 服务器上(并且 SQL 服务器不理解 JPA 级联,因为 JPA 是 Java API 而不是 SQL API 或 SQL 标准)。

于 2012-09-21T10:48:31.553 回答
1

我想你需要在你的 hbm 文件中指定你的级联设置。

<set name="columnrecord" cascade="save-update" table="..."...>
      <key>
            <column name="COLUMN_NAME" not-null="true" />
      </key>
      <one-to-many class="..." />
</set>
于 2012-09-21T10:49:17.860 回答