eclipse安装好hibernate-tools之后,按照官方教程配置好hibernate.cfg.xml和hibernate configuration,hibernate.reveng.xml,最后 执行RUN命令。但是结果却是令人非常失望,实体类没有生成……,折腾了一天。最后发现原因是在配置hibernate.reveng.xml的时候,直接选择数据库——>Include...如下图:
这种情况下,得到的hibernate.reveng.xml为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<table-filter match-schema="hhcg_db" match-name=".*"/>
</hibernate-reverse-engineering>
其中红色一行是出错的原因,解决方法有两种:
1.把此行去掉,则可以生成所有表格;
2.如下图,在选择database schema的时候,选择具体的表格,而不是直接选择数据库
这样,得到的hibernate.reveng.xml为:
<hibernate-reverse-engineering>
<table-filter match-catalog="hhcg_db" match-name="approval"/>
<table-filter match-catalog="hhcg_db" match-name="carcondition"/>
<table-filter match-catalog="hhcg_db" match-name="carfee"/>
<table-filter match-catalog="hhcg_db" match-name="carfitting"/>
<table-filter match-catalog="hhcg_db" match-name="carinfo"/>
<table-filter match-catalog="hhcg_db" match-name="delayrequest"/>
<table-filter match-catalog="hhcg_db" match-name="driverecord"/>
<table-filter match-catalog="hhcg_db" match-name="head"/>
<table-filter match-catalog="hhcg_db" match-name="maxids"/>
<table-filter match-catalog="hhcg_db" match-name="repairfactory"/>
<table-filter match-catalog="hhcg_db" match-name="repairfittings"/>
<table-filter match-catalog="hhcg_db" match-name="repairitems"/>
<table-filter match-catalog="hhcg_db" match-name="repairrecord"/>
<table-filter match-catalog="hhcg_db" match-name="repairrequest"/>
<table-filter match-catalog="hhcg_db" match-name="usecarrecord"/>
<table-filter match-catalog="hhcg_db" match-name="usecarrequest"/>
<table-filter match-catalog="hhcg_db" match-name="userinfo"/>
</hibernate-reverse-engineering>
用上述两种方法改造后,执行RUN命令,实体类正常生成