簡體   English   中英

Hibernate不會創建Java類。 我能做什么?

[英]Hibernate does not create Java classes. What can I do?

我正在使用NetBeans 6.5.1和Hibernate 3.2.5。

我通過使用其他現有數據庫(Oracle 10g XE)逐步完成了本教程 配置文件的創建以及HibernateUtil.java類的創建都可以正常工作。 然后,本教程要我運行反向工程向導,但是該向導不存在。 相反,我使用的是“來自數據庫的休眠映射文件和POJO”。

在這里,我選擇了要映射的表,並啟用了“ JDK 5語言功能”,“域代碼”和“休眠XML映射”。 選擇軟件包並單擊完成后,就創建了“ hibernate.reveng.xml”文件。

沒有Java類,並且NetBeans不會提示我為什么什么都不創建。 怎么了? 我是否缺少某些東西,下一步該怎么做?

添加: 本教程說明了它應如何在6.5上工作(是的,我知道,... beta)。 要執行的步驟正是我所做的步驟,但是仍然沒有創建任何類。

使用NB 6.9.1我遇到了相同的問題。 進一步搜索后,發現該版本中存在一個已知的錯誤。 錯誤編號190740

但是,我並不完全滿意(“它是一個錯誤”作為答案),我在NB 6.8中進行了嘗試並遇到了同樣的問題。 在按照本教程結尾處的“分別創建POJO和映射文件”部分手動創建POJO和映射文件之后,我繼續進行本教程的其余部分,並在嘗試測試HQL時遇到錯誤。 這實際上突出顯示了Hibernate Configuration文件編輯器中的一個錯誤,該錯誤在本教程的開頭使用:

在“修改Hibernate配置文件”部分中,該教程說要在hibernate.cfg.xml的Miscellaneous Properties節點中添加一個屬性。 如果您按照說明進行操作並按照教程手動輸入屬性值,那么一切都很好,但是,如果像我一樣,您有點懶;-)並使用Netbeans編輯器的設計選項卡來編輯此屬性,那么您無需從下拉列表中選擇值“ org.hibernate.hql.classic.ClassicQueryTranslatorFactory”,而無需輸入值“ org.hibernate.hql.classic.ClassicQueryTranslatorFactory”。 它看起來很相似,但實際上,不!編輯器有一個拼寫錯誤:即它說的是“ TransACTION”而不是“ TransLATOR”。

當我更正此問題時(即,將屬性值設置為:

<property name="hibernate.query.factory_class">
    org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>

並且(重要的是,我相信)重新構建了該項目(我認為我可能也已經重新啟動了Netbeans,盡管我確信這並不是嚴格必要的),突然,“ Hibernate Mapping Files and POJOs”向導開始將其填充! 這在NB6.8和NB6.9.1中對我都有效。 因此,現在我可以刪除所有sakila.entity。* POJO以及資源/sakila.entity.*映射文件(並刪除其在hibernate.cfg.xml文件中創建的<mapping />條目)等等。 映射和POJO向導將再次為我創建它們,沒有問題。

希望能有所幫助

布賴恩

您是否制作了Hibernate.cfg.xml? 我想是這樣,即使我沒有閱讀整個教程來找出答案。根據您的描述,您正在使用插件/工具來生成映射。

確保正確配置了hibernate.cfg.xml。 節省生命。 安裝記錄器還可以幫助您指出出現問題的地方。 (commons-logging或log4j)。

如果您真的想使用休眠,請使用maven / ant並生成映射,以及任何您想要的HibernateTools(在maven中為http://mojo.codehaus.org/maven-hibernate3/hibernate3-maven-plugin/ ) 。 最終,它將為您節省大量時間和麻煩。 我不確定netbeans用什么來生成這些,但是我在6.8中進行了嘗試,與maven給我的結果相比,結果幾乎是完美的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM