`
easonfans
  • 浏览: 251309 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate Synchronizer 自称生DAO文件,使用错误解决方法!

阅读更多

在07年的时候开始接触Hibernate ,便结识了Hibernate Synchronizer ,随后虽然出现了jboss的jboss tool工具,但由于习惯,就一直在使用Hibernate Synchronizer 。

此外,尽量还是自己搭建开发环境,不愿意使用myEclipse,觉得myEclipse里的Tomcat不好用,而且集成的插件好慢,很多用不上,在使用myEclipse为项目添加ssh时,又有好多不需要的jar,因此一直自己使用Eclipse整合。所以一直使用Hibernate Synchronizer 。

以前在学校的时候,因为项目都不着急,DAO文件都是自己写,但是最近工作了,去了单位,自己接了一个项目,由于时间有限,于是试着使用Hibernate Synchronizer 来自动生成DAO,结果发现问题。

大量的报错出现了……

常见的有:

org.hibernate.HibernateException: Could not parse configuration: 

 

加一个

 

root cause

org.dom4j.DocumentException: Error on line 1 of document  : Content is not allowed in prolog. Nested exception: Content is not allowed in prolog.

 

 

在网上有很多人都说是,hibernate.cfg.xml和*.hbm.xml文件的编码问题,经我自己尝试以及大量人回帖发现,这个解决办法不是有效的。感觉这个说法在误导人,至少不适合我和大部分人的情况。

我解决的方法一是,由于我的数据库是mysql,使用的是utf8建表,而hibernate.cfg.xml中的属性

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/8-ok</property>

 

必须明确数据库的建表方式才行,经修改为:

 

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/8-ok? seUnicode =true &amp;characterEncoding=UTF-8</property>

 

即可,这个是我查阅的资料,相关来源:

http://blog.csdn.net/fenglx871004/archive/2009/03/10/3975589.aspx

相对比较清晰。

 

方法二:我写hql语句的时候,也出现过这个问题,主要是

From 表名 where 属性=

 属性写成了数据库的字段,这里要注意的是,hql是面向对象操作的,因此,不要写数据库的字段,否则会报错!

方法三:

在你使用Hibernate Synchronizer 自生成的DAO文件的时候也会报这个错误,之所以出现这个错误是因为,在做save()时候没有initialize hibernate.cfg.xml文件,在你做save()操作前,写上

_RootDAO.initialize();

 

这句就好了……而不是像很多人说的--是Hibernate Synchronizer 的DAO生成错误……,不该没仔细查查资料就妄断是插件的错误,毕竟这个插件也是经过几百万人的验证那!

具体原因,因为太晚了,明天再分析吧,先写下来,供大家帮助吧

这篇文章给我很多帮助

http://hi.baidu.com/langchao826/blog/item/7bc874d74ddd95d1a044df9f.html

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics