如何在没有主键的情况下为表或视图执行hibernate映射

时间:2009-05-21 19:16:02

标签: java hibernate jdbc

  

可能重复:
  Hibernate and no PK

任何人都知道如何在没有主键的情况下为表或视图执行hibernate映射?

2 个答案:

答案 0 :(得分:10)

不要认为Hibernate允许在没有主键的情况下映射表...想想Hibernate如何在没有可以唯一标识行的列的情况下执行更新。

我想解决方法是使用包含所有列的复合键,但最好不要添加主键。

答案 1 :(得分:5)

我只会在你阅读数据(不写作)时这样做。当你有像oracle这样的数据库时,可以使用

这样的语句
select DOKUMENT.*, ROWID from DOKUMENT

→因此,您可以将此语句添加到Hibernate映射中:

<id column="ROWID" type="string" />

随后,您将所有其他列定义为

<property...

使用逆向工程向导时,可以

  1. 删除复合键标记
  2. 搜索并替换属性和
  3. 的key-property
  4. 在行上方插入