作者:Walter Chou 出处: http://www.cnitblog.com/walter
首先,造成hibernate方言设置不正确的原因很多。以下列出了可能的解决办法:
一:MyEclipse插件安装问题
插件本身在默认安装后,Hibernate相关的配置和生成的模版有误。可能的解决方式是重装MyEclipse插件,更换路径或版本号。
还有就是在配置项目的Spring和hibernate支持的时候将hibernate相关的包都勾上。(见图1)
在选择JDBC连接时,注意数据库方言设置是否正确。Oracle默认的方言是:Oracle9i/10g
二: JDK的安装问题
MyEclipse 4.5以上版本,本身自带有JRE。但是常常问题就出现在这方面。默认带的JDK版本过低。导致在6.5或6.6版本中常出现内存泄露问题。所有的MyEclipse相关的插件都共用这个默认的jre如MyEclipse Database Explorer 。。。
建议不要使用MyEclipse自带的JDK,而使用系统安装的JDK(不是JRE)。
三:数据库的JDBC驱动程序
针对Oracle来说,它的JDBC驱动有两种class12.jar和ojdbc14.jar,前者对Hibernate的支持不好,连接常出现问题,推荐后者。
由于驱动问题导致这个异常的情况特别多,因为ojdbc14.jar有两个版本,一个版本为9.0.1.1另一个是9.2.1.1后者经常性出现这个问题。
通过查看他们的大小可以看出来版本,推荐使用9.0.1.1版本(也就是文件大小是1.5MB左右)。9.2.1.1的JAR文件大小是1.1MB左右。
如果通过更换驱动还不能解决问题,请您继续往下看。这里的驱动不是只在项目里用的驱动包,而是在配置“MyEclipse Database Explorer”连接数据库时所使用的jar包。(见图2)
如果项目一开始使用12的版本出现了这样的问题,后来再更换,就无法解决了。只能重装MyEclipse 插件。
四:项目的相关配置文件
MyEclipse 会在项目相关的很多个配置文件中记录。典型的就是项目目录中那些以“.”开头的文件,查看一下就知道了。(如图3)
在MyEclipse较老版本的”.myhibernatedata”文件里加入如下内容也可以解决。
“hibernate.dialect=org.hibernate.dialect.MySQLDialect”。
多查看一下这个文件,相关的参数还有:configFile=/../../hibernate.cfg.xml" 是否指向错误。