使用 Eclipse3.2.1+MyEclipse5.1+classes12.jar+Hibernate3
建立了 Hibernate3 的 Project, 使用上面那个 classes12.jar 的驱动,在 MyEclipse 的 DB Browser
连接上数据库,选择表,在上下文菜单中点击 Hibernate Reverse Engnieering, 直接点 Finish 按钮,
生成映射文件是出现出错:
An internal error occurred during "Generating Artifacts"
原来在 Eclipse3.1+4.1+Hibernate 连接 DB2 时一切正常,曾经用 MyEclipse5.0 也正常生成出映射文件来,可最近总是连接 Oralce 生成映射文件时出现以上错误,一直也没去找是什么原因,搁置了很久,今天想看看 MyEclipse 对于建立了主外键关系的表(其中子表有自己的主键)生成的一对多关系的映射文件是什么样子的,才在网上找找这到底是怎么回事的。
网上的说话基本都是说驱动太老了,必须换成更新的驱动,因为我本地安装的是 Oracle92,所以为 MyEclipse 指定 Oracle92 安装目录中的驱动,以下包中1、4、9、10都依依试过,可是故障依旧
1. %OraHome%\jdbc\lib\classes111.jar
2. %OraHome%\jdbc\lib\classes111.zip
3. %OraHome%\jdbc\lib\classes111_g.jar
4. %OraHome%\jdbc\lib\classes111_g.zip
5. %OraHome%\jdbc\lib\classes12.jar
6. %OraHome%\jdbc\lib\classes12.zip
7. %OraHome%\jdbc\lib\classes12_g.jar
8. %OraHome%\jdbc\lib\classes12_g.zip
9. %OraHome%\jdbc\lib\ojdbc14.jar
10. %OraHome%\jdbc\lib\ojdbc14_g.jar
11. %OraHome%\jdbc\lib\classes12dms.jar
12. %OraHome%\jdbc\lib\classes12dms_g.jar
偶然的机会,在 Eclipse 重新启动了之后,再次用同样的方法生成映射文件成功了,查看一下重启前配置了 Oralce 驱动是用的上面第 10 个包。
再次使用那个有问题的 Oracle 驱动 classes111.jar 不重启 Eclipse,来生成映射文件也是顺利的,所以一定要记得在重新配置了 MyEclipse 的 Database Explorer 驱动之后要使用新的驱动来生成映射文件前重启一下你的 Eclipse,虽然连接的时候能够立即使用刚刚配置的驱动,但生成映射文件时却有些顽固,这大约也是 MyEclipse 的一个 Bug 吧。
应该使用上面列出的任意一个驱动都是可行的,只侧重点不同而已,也不知道先前哪个 classese111.jar 是哪来的,困扰我这么久。
看网上介绍说 Oracle 官方更推荐用 ojdbc12.jar 驱动。
本文链接 https://yanbin.blog/myeclipse51-generating-artifacts/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。
果然重新启动就可以了,我日了,太感谢了
2.今天本人也遇到这个问题,不过我用的mysql 5.1 数据库,也重启了myeclipse,但仍不管用,后来发现,我在生成映射文件时,主键生成方式选的是”native”(由数据库分配),而我在数据为库中并没有指定主键生成方式.所以在生成映射文件时出现上述错误.
解决:1. 在生成表映射文件时,主键生成方式选择”assigned”(由外部分配).
2. 如果选”native”,在数据库中主键生成方式选择”Autoincrement”.
这是另一种类型的问题了,很好,收下啦。
我日,还真是的!谢谢楼主
用了上述的两种方法怎么还是不行啊 晕了
刚刚换成了驱动 ojdbc14.jar,然后重启Eclipse ,OK ,搞定!谢谢了!
楼主真是好人。
太感谢了!!!!!
日,重启一下真的好了。
感谢楼主及lsy,我的问题得到解决,结合两位的办法。谢了。