我正在对最近将 EJB 代码转换为本机 Hibernate 代码的过程进行故障排除(这是一个痛苦的过程,因为 EJB 的便利性让我非常受宠若惊)。
我觉得麻烦的一件事是 Hibernate 将其实体声明保存在 hbm.xml 文件中,然后将配置保存在单独的文件中。虽然这不一定是一个大问题,但 Netbeans 向导并没有真正让开发人员只需单击一个按钮、即时检测所有实体并更新配置文件。
然而,使用persistence.xml,我只需添加类就可以轻松地做到这一点而忘记它。另一个好处是persistence.xml 存储了ORM 所需的几乎所有内容,除了特定于类的注释(我保留)。
话虽如此,我有什么办法让 Hibernate (1) 远离 EE 和 (2) 使用 persistence.xml 来获取连接、映射等?
另外,一个相关的问题 - CriteriaQuery 显然是 Java EE 的东西。我真正喜欢使用 EJB 的一件事是它有很强的编译时约束。例如,我可以将 ClassName_.myAttribute 直接作为参数放在 CriteriaQuery 中,而如果我使用 Hibernate 本机“Criteria”对象,则必须使用“my_attribute”,它不受编译时完整性检查的影响(注意: ClassName_.myAttribute 映射到表上的“my_attribute”)。
那么有没有办法保持编译时的完整性呢?
谢谢。