Hibernate不会创建Java类。我能做什么?

时间:2010-10-08 08:01:33

标签: java oracle hibernate netbeans

我正在使用NetBeans 6.5.1和Hibernate 3.2.5。

我通过使用另一个现有数据库(Oracle 10g XE)逐步完成this tutorial。配置文件的创建工作正常,以及HibernateUtil.java类的创建。然后教程要我运行反向工程向导,但此向导不存在。相反,我使用的是“Hibernate Mapping Files和POJO from Database”。

在那里,我选择了要映射的表,并启用了“JDK 5语言功能”,“域代码”和“Hibernate XML映射”。选择包并单击完成后,将创建“hibernate.reveng.xml”文件,这就是全部。

没有Java类,NetBeans没有提示我为什么没有创建任何消息。怎么了?我错过了什么,接下来该怎么做?

添加: This tutorial显示它应该如何与6.5一起使用(是的,我知道,...测试版)。要执行的步骤正是我所做的步骤,但仍然没有创建类。

2 个答案:

答案 0 :(得分:1)

我使用NB 6.9.1遇到了同样的问题。进一步搜索后,似乎该版本中存在已知错误。 Bug ref 190740

但是,并不完全满意(“它的错误”作为答案)我在NB 6.8中尝试了它并得到了同样的问题。根据标题为“单独创建POJO和映射文件”的教程结尾部分手动创建POJO和映射文件后,我继续学习本教程的其余部分,并在尝试测试HQL时遇到错误。这实际上突出显示了教程开头使用的Hibernate Configuration文件编辑器中的错误:

在“修改Hibernate配置文件”一节中,教程说要在hibernate.cfg.xml的Miscellaneous Properties节点中添加一个属性。如果按照说明操作并按照教程手工输入属性值那么一切都很好,但是如果 - 像我一样 - 你有点懒;-)并使用Netbeans编辑器的设计选项卡编辑这个属性,然后你将无疑从下拉列表中选择值“org.hibernate.hql.classic.ClassicQueryTransactionFactory”,而不是输入值“org.hibernate.hql.classic.ClassicQueryTranslatorFactory”。它看起来很相似,但实际上,No!,编辑有一个拼写错误:即它说“TransACTION”而不是“TranslaPATOR”。

当我更正此问题时(即将属性值设置为:

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

和(重要的是,我相信)REBUILT项目(我想我可能已经重新启动了Netbeans,虽然我确信这不是非常必要的),突然间“Hibernate Mapping Files和POJOs”向导启动了支撑它的东西!这在NB6.8和NB6.9.1中都适用于我。所以现在我可以删除所有sakila.entity。* POJO以及resources / sakila.entity。*映射文件(并删除它在hibernate.cfg.xml文件中创建的<mapping />条目)等等! Mapping和POJO向导将再次为我创建它们没有probs。

希望有所帮助

布赖恩

答案 1 :(得分:0)

你做过Hibernate.cfg.xml吗?我想是这样,即使我没有阅读整个教程来找出答案。从你所描述的内容来看,你正在使用插件/工具来生成映射。

确保正确配置了hibernate.cfg.xml。挽救生命。 安装记录器也可以帮助您指出出错的地方。 (commons-logging或log4j)。

如果你真的想使用hibernate,请使用maven / ant并使用HibernateTools生成映射,以及任何你想要的东西(在maven中为http://mojo.codehaus.org/maven-hibernate3/hibernate3-maven-plugin/)。它最终将为您节省大量时间和麻烦。我不确定netbeans会用什么来生成这些,但是我在6.8中尝试了它,结果是完美的,但与maven给我的相比。