【发布时间】:2016-02-13 00:49:21
【问题描述】:
我第一次与 Hibernate 合作开展一个学校项目,我们正在为食品卡车构建一个类似于 Yelp 的应用程序。然而,因为我首先创建了我的数据库模式,所以我使用 Hibernate 的逆向工程特性来生成 Java 类。但是,我无法让 Hibernate 以我想要的方式生成 Java 类。这是我的 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>
<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
}
我知道我做错了什么或不正确,但我不知道是什么。此外,当我在初始生成后尝试生成代码时,我收到此错误消息“休眠配置失败并显示消息:资源:模型/Item.hbm.xml 未找到,请参阅 message.log 以获取异常详细信息。”尽管 Item.hbm.xml 在那里。
【问题讨论】:
标签: hibernate jakarta-ee netbeans hibernate-mapping