怎么做表或视图的Hibernate映射没有主键

问题描述:

可能重复:
Hibernate and no PK怎么做表或视图的Hibernate映射没有主键

任何人都知道该怎么做冬眠表或视图映射无主键?

+2

看到http://stackoverflow.com/questions/767277/hibernate-and-no -pk – Schildmeijer 2009-05-21 19:29:55

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

我想一个解决方法是使用一个组合键与所有列,但你最好添加一个主键。

+0

我认为你在这里是正确的。此外,所有列的组合键仍然需要是主键,所以您最好制作一个更合理的组合键或选择一个唯一标识的列作为主键。 – 2009-05-21 19:30:25

+7

我不知道在只读情况下它是否太重要(wrt udpates)。 – javamonkey79 2010-11-12 00:04:56

我只会在你读数据的时候这么做(不是写它)。当你有一个像甲骨文数据库,你可以有之类的语句

select DOKUMENT.*, ROWID from DOKUMENT 

→,因此,你可以添加此语句到Hibernate映射:

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

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

<property... 

当您使用逆向工程向导,您可以

  1. 除去复合密钥标记
  2. 搜索和替换键属性属性和
  3. 插入件上面的行