动态生成hibernate配置文件hbm.xml文件,并导入项目使用

wwilovehome 2011-08-23 01:25:21
在项目开发过程中,为了更好的满足客户需求,需要使用hibernate实现以下功能:
(1)动态的生成hibernate的配置文件*.hbm.xml。(已经解决)
(2)将动态生成的的*.hbm.xml文件动态的加入到项目中。(问题)
(3) 在(2)功能实现的基础上,希望项目打包成WAR文件依旧可以实现(2)所描述的功能,不需要重启tomcat。
...全文
557 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
没饵的鱼钩 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwilovehome 的回复:]

引用 4 楼 tonychen0915 的回复:
Hibernate的Configuration你是怎么获取的,这个类能管理映射关系
addDirectory(File dir) 这个方法可以在运行期动态的添加映射文件
addClass(Class persistentClass) 这个方法可以单个的添加需要hibernate管理的类,映射文件默认在classpath下寻找
addFil……
[/Quote]
Configuration 这个类初始化是用hibernate.cfg.xml
然而他也提供了addFile()方法在运行期动态加载映射文件的。

qingyuan18 2011-08-23
  • 打赏
  • 举报
回复
如果你的项目是目录方式部署,倒是可以写一个ant脚本来直接把生成的配置文件往你项目classes目录里面搬移,tomcat支持热部署,所以它发现classes里面有新的xml的时候,会reload你的项目包

wwilovehome 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tonychen0915 的回复:]
Hibernate的Configuration你是怎么获取的,这个类能管理映射关系
addDirectory(File dir) 这个方法可以在运行期动态的添加映射文件
addClass(Class persistentClass) 这个方法可以单个的添加需要hibernate管理的类,映射文件默认在classpath下寻找
addFile(File xmlFile) 添加一个XML映射文件……
[/Quote]
hibernate的Configuration获取的是hibernate.cfg.xml,至于这个文件并不是关键,因为我可以动态的对它进行修改映射mapping这个标签。现在的关键问题是,我动态生成的hbm.xml文件如何加入到项目中。
wwilovehome 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gavin_ts 的回复:]
动态?
hbm.xml是根据数据库中的表由myeclipse自动生成(可全部生成啊),既然你前台提交数据,肯定是已经有了这个hbm.xml和对应的实体类才能提交(不然,你的数据保存何处?) 这何故能动态?
[/Quote]
前台提供的只是关键的数据值,需要使用DOM4J来动态创建*.hbm.xml.
没饵的鱼钩 2011-08-23
  • 打赏
  • 举报
回复
Hibernate的Configuration你是怎么获取的,这个类能管理映射关系
addDirectory(File dir) 这个方法可以在运行期动态的添加映射文件
addClass(Class persistentClass) 这个方法可以单个的添加需要hibernate管理的类,映射文件默认在classpath下寻找
addFile(File xmlFile) 添加一个XML映射文件到Configuration中受管理
Configuration配置变化后需要重新buildsessionFactory使其生效。
我嘞个去 2011-08-23
  • 打赏
  • 举报
回复
动态?
hbm.xml是根据数据库中的表由myeclipse自动生成(可全部生成啊),既然你前台提交数据,肯定是已经有了这个hbm.xml和对应的实体类才能提交(不然,你的数据保存何处?) 这何故能动态?
wwilovehome 2011-08-23
  • 打赏
  • 举报
回复
自动生成POJO和hbm使用工具并非难事,我所要生成的hbm.xml是根据客户需要,通过前台提交数据,自定义的一个hbm.xml文件,这个问题已经解决,如(1)。所谓动态,不只是动态生成hbm.xml,而且要求在生成hbm.xml后,能够不重新运行项目,就可以直接使用动态生成的hbm.xml文件进行常规的CRUD,如(2)。最后能够进行正常发布,如(3)。运行环境是myeclipse 8.5,服务器 tomcat.
  • 打赏
  • 举报
回复
myeclipse有自动生成hbm的功能啊,不用手写的。生成后可以指定到自己的项目中。
偶真不知道你说的“动态的加入到项目中”是啥意思哟。。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧