最近搭建新的项目,需要使用eclipse下通过hibernate tools实现hibernate反向工程生成实体类和对应的hbm.xml文件,现在记录下方便以后回忆:
1、首先要下载安装hibernate tools;
2、按照这篇文章操作:http://blog.csdn.net/success041000/article/details/6455080;
3、注意:补充下上面的文章,在使用过程中会出现类似如下提示:
org.hibernate.cfg.JDBCBinderException: Duplicate class name 'com.dqgbcd.sczzks.entity.AllFileGroups' generated for 'org.hibernate.mapping.Table(SYS._ALL_FILE_GROUPS)'. Same name where generated for 'org.hibernate.mapping.Table(SYS._ALL_FILE_GROUPS)'
Duplicate class name 'com.dqgbcd.sczzks.entity.AllFileGroups' generated for 'org.hibernate.mapping.Table(SYS._ALL_FILE_GROUPS)'. Same name where generated for 'org.hibernate.mapping.Table(SYS._ALL_FILE_GROUPS)'
原因:这是因为数据库中还有许多系统表,在对系统表进行逆向工程时出错。
解决方案:
建立hibernate.reveng.xml作逆向配置。
设定只有dbo下的schema被用做逆向。
参考配置代码:
<?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>
<table-filter match-schema="AMES" match-name="ATTACH"/>
<table-filter match-schema="AMES" match-name="ATTACH_GROUP"/>
......
</hibernate-reverse-engineering>
注意:match-schema就是用户名,match-name就是表名,注意大小写的区分