Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:生成动态POJO类&;运行时映射文件_Java_Hibernate_Dynamic_Jboss - Fatal编程技术网

Java Hibernate:生成动态POJO类&;运行时映射文件

Java Hibernate:生成动态POJO类&;运行时映射文件,java,hibernate,dynamic,jboss,Java,Hibernate,Dynamic,Jboss,我正在寻找一种在运行时使用XML映射文件生成hibernate类的方法。 例如,使用hibernate可以比自己使用JDBC处理数据库节省更多的时间 假设我使用库生成了POJO.java类、.class(字节码)及其具有正确语法的.hbm.xml映射文件,hibernate是否会自动识别它而无需任何其他配置,或者此过程必须在启动时完成,并且需要重新启动应用程序? 如果是这样的话,启动时要做的额外步骤是什么?我可以在运行时做吗 我搜索了很多,读了很多,但是如果我需要在类生成阶段之前连接和处理数据库

我正在寻找一种在运行时使用XML映射文件生成hibernate类的方法。
例如,使用hibernate可以比自己使用JDBC处理数据库节省更多的时间

假设我使用库生成了POJO.java类、.class(字节码)及其具有正确语法的.hbm.xml映射文件,hibernate是否会自动识别它而无需任何其他配置,或者此过程必须在启动时完成,并且需要重新启动应用程序?
如果是这样的话,启动时要做的额外步骤是什么?我可以在运行时做吗

我搜索了很多,读了很多,但是如果我需要在类生成阶段之前连接和处理数据库的一些表呢

我也读过关于蚂蚁任务春季Roo的书,但仍然不知道该去哪里

以前有人处理过这样的事情吗


请提供您的建议,提前谢谢。

我喜欢您正在尝试做的事情,因此当您说:

hibernate会在没有任何额外配置的情况下自动识别它吗?或者这个过程必须在启动时完成,并且需要重新启动应用程序

Hibernate将识别它,但需要对Hibernate.cfg文件进行额外的修改,即,您需要为每个实体添加映射属性,这需要重新启动应用程序


为了避免重新启动服务器,我只能想象在运行时将应用程序部署到第二台服务器上——在生成所需资源后,如果第一次启动可以在后台进行,这会使事情变得更好。

Hm,我认为这没有意义。你的程序必须在compiletime知道类,否则你无法在程序中使用它们。如果你想做Graal(但你将独自理解和维护它),你可以重新定义一个类加载器,当它检测到缺少一个类时,该类将具有你想要提供的实体的名称,创建一个临时的自定义Java源文件(通过解析和理解XML文件的愿望),使用JDK 6提供的内部JavaCompiler类对其进行编译,然后提供它,就好像我是在程序启动时由jar提供的一样。但要注意:这是可行的(真的:它应该会起作用),但对于初学者或中级开发人员来说是不可能实现的。