把Hibernate的HBM文件转成OpenJPA的ORM.XML

正题了.关于框架级的区别啊,API级改动都可以参考下面

http://www.ibm.com/developerworks/cn/websphere/techjournal/0708_vines/0708_vines.html

不过IBM的人都比较High Level那.里面有段

由于对象关系映射已存在,所以您需要使用中间相遇迁移方法保持现有对象和数据模型。不能使用自底向上方法从数据模型生成对象模型,也不能使用自顶向下方法从对象模型生成数据模型;迁移必须保持两个模型。本文手动实现了中间相遇映射,但是 Dali JPA 工具或 IBM Design Pattern 工具包(请参见参考资料)可以自动进行 Hibernate XML 到 OpenJPA XML的大部分迁移

因为我们有几百个HBM要转换,当然希望能做这点,于是发了信问,没回音,没办法,网上没有找比较好工具,只能自己动手丰衣足食那.

本软件主要把已有的Hibernate的HBM转换ORM.XML.小知识,JPA不只是支持注解,同样也支持XML配置.

如果大家看明白那位IBM大师的大作后.就知道其实里面最让人头痛的一个部分莫过于HBM转ORM.XML配置的过程.


我放在附件里了,点击下下来,
如果想要下带JAR包的源代码可看
http://zlhades.spaces.live.com/blog/cns!7B67908E972A4581!2634.entry
下载后运行JPAConverter.记得READ_FOLDER,WRITE_FOLDER的配置,再把文件名

fieldNameList.add("CommodityAttributeActual.hbm");

这样一个文件 一个文件的加进去,这是一个草稿那,因为公司不用,就少了点完善的激情,我想会用JPA的人都应该看得明白.源代码随便改那.配置好RUN就可以,生成的XML会打在控制台里,我的例子里会有点小错误,主要是以前用公司的代码,传来的时候我删除了,可以试一下看生成的东西是不是你想要的.

思路很简单,本工具用的是Digestert先读XML建造我定义好的模型,当然,可能因为HBM过于复杂,大量高级Hibernate应用.不好做转化,这时我把由Digester造出来的对像再reInitial一下,这样出来的模型就是相当好的,再用XStream写成相应的XML.大功造成.

里面比较难的地方有:

1.Hibernate的继承转到JPA里面去,里面对于没有实体表对像的东西 可以通来MappedSuperclass来配置,

2.自定义类型JPA里不支持.但是可以用植入类解决,你可以在相关自定义类形中加入专门针对JPA存储的字段,而且通过GET/SET来与JPA交互,这时,GET,SET方法中你想做什么都可,里面可以初始化你用的真正数据,基本和自定义类型接近吧:)

3.Hibernate中resultset用ql-result-set-mapping再建立相应的垃圾表解决吧.这个我确是没有相到好办法.

4.记得上OPENJPA那里下最新的OPENJPA版本,2008年11份才出来的,对JPA2.0支持.很新鲜的对Criteria的支持,可以帮你省下很多事,当然你也可以写个山寨版的hibernate criteria.这样基本的代码都可以不改了:)方法是看玩Hibernate Criteria源代码后再写一套,我们用ibatis写过一套,我想JPQL写起来会容易很多.

5.持久化API,我们项目这点还是做得不差,对HIBERNATE的API做个封装,改我们的封装类就可以,当然也可做山寨的:)很简单.

当然,这里面有很多地方要改的,很地方都是与我的项目相当的,有得来忘记改了:)用的人可以下来自已改,决对全开源:)哈哈.有相关的东西也可留言给我:)交流一下:)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值