我使用Hibernate,Maven和Eclipse(STS构建)来构建项目。我正在使用hbm.xml文件来指定我的模式。我想用Hibernate的hbm2java来生成我的模型类。我已经运行良好并生成了我想要的代码。什么是使用Hibernate的hbm2java的最佳实践?
它从命令行完美运行,生成模型代码,然后按预期构建和测试。
但是,Eclipse似乎无法处理它。它会定期“失去理智”,无法解决我手动编码的DAO类中引用的非常简单的导入和类。它无法找到的东西是像HibernateUtil这样的类。具有讽刺意味的是,它似乎没有任何困难找到模型类。
未解决的类位于运行结束时的target/classes/blah-blah文件夹中。所以他们显然被复制到正确的地方。
在“持续集成”环境中,是否最好生成一次源代码,将它们提交给我的版本控制,然后禁用代码gen?或者是否有可能每次都生成代码,从而确保我能够在没有人为干预的情况下获取任何数据库更改?
谢谢。但我希望“真相之源”是我的数据库模式。通过手动编写模式类和模型类,我现在有多个知识存在的地方。您是否看到将数据库模式(或本例中为hbm.xml文件)定义为模型的唯一位置? (我想你可以在一个地方定义它:你的Java模型类) – Marvo 2011-12-31 00:25:30
我们使用了注释,但发现它们完全相反:看起来很丑,遍布代码。使用hbm文件,感觉像数据库定义全部在一个地方。但我还没有解决这个问题。 (尽管我有问题,但我真的很感谢你的回答。) – Marvo 2011-12-31 00:27:02
数据库模式位于数据库或用于创建模式的SQL脚本中,也位于hbm文件中,所以我不会看到它如何更改任何有关从hbm或手动生成的类的方法。如果您担心hbm和java文件未同步,请使用注释。无论如何你都应该进行单元测试来测试一切正常。 – 2011-12-31 00:30:33