我的任务是从一个大型的遗留SQL服务器数据库中进行逆向工程Hibernate映射。数据库广泛使用了检查约束(每个表几个)和索引,虽然我认为这些是DBA问题,但我们需要在Hibernate映射中保留它们。
使用Hibernate Tools for Eclipse,我可以成功地将表反向工程为.hbm.xml文件;但是,没有检查约束或索引存在。我知道可以手动将检查约束和索引直接添加到映射中,例如:
<class name="package.Tablename"
table="TABLENAME"
schema="dbo"
catalog="MyDB"
check="START_DATE < END_DATE"> <!-- here -->
...
<property name="endDate" type="timestamp" index="IDX_END_DATE"> <!-- here -->
<column name="END_DATE" />
</property>
...
</class>
我们有数百个表和数千个索引/检查约束,因此手动将这些添加到反向工程映射中并不可行。
是否有可能让Hibernate Tools为我们吐出这些?如果是这样,怎么样?如果没有,任何人都可以推荐其他工具吗?
答案 0 :(得分:0)
使用Hibernate Tools开箱即用是不可能的。但是,可以将DDL添加到<database-object>
元素内的映射中。为了对此信息进行反向工程,您必须编写通过custom utility class调用的custom template。
由于<database-object>
的船只没有提供我的雇主想要的抽象级别和一般用户友好性,我们选择不采用这种方法并以不同的方式建模我们的数据库。