如何在hibernate中使用hql查询进行级联

时间:2012-09-21 10:38:30

标签: java oracle hibernate

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

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

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

级联更新应仅针对用户名而非密码进行。我怎么能实现这个目标呢?

2 个答案:

答案 0 :(得分:2)

你没有。

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

答案 1 :(得分:1)

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

<set name="columnrecord" cascade="save-update" table="..."...>
      <key>
            <column name="COLUMN_NAME" not-null="true" />
      </key>
      <one-to-many class="..." />
</set>