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

ari*_*iso 10 java hibernate jdbc

可能重复:
休眠而没有PK

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

Rya*_*son 10

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

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

  • 我不知道在只读情况下这是多么重要(wrt udpates). (7认同)
  • 所以,当我从一个没有主键的视图中选择,并且不希望toupdate查看我该怎么办? (4认同)

小智 5

我只会在你阅读数据(不写作)时这样做.当你有一个像oracle这样的数据库时,你可以有类似的语句

select DOKUMENT.*, ROWID from DOKUMENT
Run Code Online (Sandbox Code Playgroud)

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

<id column="ROWID" type="string" />
Run Code Online (Sandbox Code Playgroud)

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

<property...
Run Code Online (Sandbox Code Playgroud)

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

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