【发布时间】:2017-09-29 07:05:01
【问题描述】:
我正在寻找一种在运行时使用 XML 映射文件生成休眠类的方法。
例如,使用 hibernate 比我自己使用 JDBC 处理数据库可以节省更多的时间。
假设我用javassist 库生成了POJO .java 类,.class (ByteCode),它的.hbm.xml 映射文件具有正确的语法,休眠将自动识别它而无需任何额外的配置,或者这个过程必须是在启动时完成并需要重新启动应用程序?
如果是这样,在启动时会执行哪些额外步骤,我可以在运行时执行吗?
我进行了很多搜索并阅读了有关 Hibernate Dynamic Models 的信息,但是如果我需要在类生成阶段之前连接并处理数据库的某些表怎么办?
我还阅读了有关 Ant Task 和 Spring Roo 的信息,但仍然不知道该去哪里..
以前有人处理过这种事情吗?
请多多指教,提前致谢。
【问题讨论】:
-
嗯,我认为这没有意义。您的程序必须在编译时知道这些类,否则您将无法在程序中使用它们。
-
如果你想做 Graal(但你将独自理解和维护它),你可以重新定义一个 ClassLoader,当它检测到一个类丢失时,它将具有你想要的实体的名称提供,创建一个临时和自定义的 Java 源文件(通过解析和理解您的 XML 文件的意愿),使用自 JDK 6 以来可用的内部 JavaCompiler 类对其进行编译,然后提供它,就好像我在启动时由 jar 提供一样你的程序。但请注意:这是可行的(真的:它应该可以工作),但对于初学者或中等开发人员水平来说是无法达到的。
标签: java hibernate dynamic jboss