我使用Hibernate对我们的旧Oracle数据库进行逆向工程,并且有许多数据库视图具有表示其中使用的表的主键的列。事实证明,我使用的所有视图都有一个主键列或复合主键(2列),可以唯一地标识视图中的每一行。我们还为视图定义了更新,插入和删除操作,以便正确更新基础表。
Hibernate无法确定视图键(因为视图自然没有键)所以 将密钥休眠以便它可以反向映射数据库是一种自然的选择,但我不知道如何指定复合键。
有没有办法在hibernate reverse engineering config xml中指定复合键?
答案 0 :(得分:2)
只需将密钥的第二部分添加到hibernate逆向工程配置文件中的primary-key
标记,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering
SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<schema-selection match-schema="MY_SCHEMA" match-table="MOE_VIEW"/>
<table schema="MY_SCHEMA" name="MOE_VIEW">
<primary-key>
<key-column name="MR_MOE_ID"/>
<key-column name="EXPERIMENT_ID"/>
</primary-key>
</table>
</hibernate-reverse-engineering>