好的,这在Hibernate 4.3.x中是不可能的,而且似乎永远不可能。
1)在对此进行了一些研究之后,似乎是一个常见的误解,
Configuration.addPackage使我们可以从给定的包中加载所有实体类。这不是真的。我通过查看休眠源找到了困难的方法,然后才发现上面的SO问题/答案对此进行了确认。实际上,我不太确定该怎么
addPackage做,但是对于我的情况来说,它似乎不太有用。
2)似乎我们可以做的一件事就是调用
Configuration.addAnnotatedClass我们自己的每个带注释的实体类,例如在编译时对这些类进行硬编码。或者…或者,通过使用Reflections或Guava,我们可以在运行时动态地从给定包中找到所有(即我们自己的)实体类,循环遍历它们,然后仍然调用
Configuration.addAnnotatedClass。Reflections的唯一问题是它带有很多依赖项。因此,如果我们决定使用Reflections,就必须为这个简单的事情添加9个新的JAR(这很痛苦)。使用番石榴会更容易一些,我们可以致电
ClassPath.from ( Thread.currentThread().getContextClassLoader() ).getTopLevelClasses(pckg)。
如果有人有更好的方法,请随时提供。
我会接受最佳答案,不一定是我的答案。



