2016-02-13 65 views
0

我正在爲一個學校項目首次使用Hibernate,我們正在爲食品卡車構建一個類似Yelp的應用程序。但是,因爲我首先創建了我的數據庫模式,所以我使用Hibernate的逆向工程特性來生成Java類。但是,我無法讓Hibernate按照我想要的方式生成Java類。這是我的hibernate.reveng.xml中文件無法使用Hibernate對java類進行逆向工程更改

<?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> 
    <schema-selection match-catalog="FoodTrucks"/> 
    <table-filter match-name="item"/> 
    <table-filter match-name="tags"/> 
    <table-filter match-name="truck"/> 
    <table-filter match-name="menu"/> 
    <table-filter match-name="tag_item_map" exclude="true"/> 
    <table-filter match-name="user"/> 
    <table-filter match-name="item_review"/> 
    <table-filter match-name="truck_review"/> 
    <table name="item"> 
     <column name="menu_id" exclude="true"></column> 
     <foreign-key constraint-name="item_review_ibfk_2"> 
      <many-to-one property="items"></many-to-one> 
     </foreign-key> 
     <foreign-key constraint-name="tag_item_map_ibfk_1"> 
      <set property="tags"></set> 
     </foreign-key> 
    </table> 
    <table name="menu"> 
     <column name="truck_id" exclude="true"></column> 
     <foreign-key constraint-name="item_ibfk_1"> 
      <many-to-one property="items"></many-to-one> 
     </foreign-key> 
    </table> 
    <table name="tags"> 
     <foreign-key constraint-name="tag_item_map_ibfk_2"> 
      <many-to-one property="items"></many-to-one> 
     </foreign-key> 
    </table> 
    <table name="truck"> 
     <foreign-key constraint-name="menu_ibfk_1"> 
      <many-to-one property="menus"></many-to-one> 
     </foreign-key> 
     <foreign-key constraint-name="truck_review_ibfk_2"> 
      <many-to-one property="reviews"></many-to-one> 
     </foreign-key> 
    </table> 
    <table name="user"> 
     <column name="pass_word" exclude="true"></column> 
     <foreign-key constraint-name="item_review_ibfk_1"> 
      <many-to-one property="itemReviews"></many-to-one> 
     </foreign-key> 
     <foreign-key constraint-name="truck_review_ibfk_1"> 
      <many-to-one property="truckReviews"></many-to-one> 
     </foreign-key> 
    </table> 
</hibernate-reverse-engineering> 

不過,我能得到它做正確的唯一的事情就是排除標籤項目表。例如,這裏是生成的Item類,沒有getter和setter。

public class Item implements java.io.Serializable { 


    private Integer id; 
    private Menu items; 
    private String itemName; 
    private double price; 
    private Set itemReviews = new HashSet(0); 

    public Item() { 
    } 


    public Item(String itemName, double price) { 
     this.itemName = itemName; 
     this.price = price; 
    } 
    public Item(Menu items, String itemName, double price, Set itemReviews) { 
     this.items = items; 
     this.itemName = itemName; 
     this.price = price; 
     this.itemReviews = itemReviews; 
    } 

// getters and setters down here 
} 

我知道我在做一些錯誤的或不正確的事情,但我不知道是什麼。另外,當我在初始生成後嘗試生成代碼時,出現錯誤消息「Hibernate配置失敗,消息:resource:model/Item.hbm.xml not found see exception.log for exception details。」儘管It​​em.hbm.xml在那裏。

回答