日期:2014-05-16  浏览次数:20359 次

Hibernate,Ext ,Json ,Strut2整合常见错误及解决办法

?

?对Hibernate和Ext,Strut2综合开发经验不多。这次算是第一次,遇到了很多问题,每遇到一个问题,都把他记录起来,简单零散的整理啦一下.还是

1、======================================================================================
使用MyEclipse创建JavaEE5.0的Web项目,在使用Hibernate3.5.1的注解功能时出现错误

java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z 。
我程序出现找个错误,主要是在建立关系之后,如果实体,没有通过注解建立关系,就不会出现错误。

解决办法:删除对Java EE 5 Libraries的使用。

问题原因:javaee.jar中的部分类与hibernate-jpa-2.0-api-1.0.0.Final.jar存在版本冲突。
但是如果删除了Java EE 5 Libraries,Web的Servelt又使用不了啦.
后面还是降低hibernate的版本为3.3
请高手,指教指教找个问题。


2、======================================================================================

Duplicate class/entity mapping
Could not parse configuration: /hibernate.cfg

Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping

Caused by: org.dom4j.DocumentException: FWK005 parse may not be called while pa
sing. Nested exception: FWK005 parse may not be called while parsing.

这些错误的解决方法:

总结:
网上搜索的答案:HibernateSessionFactory 中 getSession() 方法加一个 synchronized 就可以实现.
最终解决之后,还是发现,实体注解配置发生了错误,自己检查注解关系配置。

3、===============================================================================================================

复合主键. 不错的文章.
http://taeky.iteye.com/blog/553220
http://fpjason.iteye.com/blog/544088
这边文字也非常详细:
http://www.ll19.com/bb/topic/109#

4、=========================================================================================================
Oracle里面,创建一个序列
?create sequence hibernate_sequence

?minvalue 1
?maxvalue 999999999
?start with 1
?increment by 1
?cache 20
?cycle;

Oracle里面自动增长主键.

????@Id
??? @GeneratedValue(strategy=GenerationType.AUTO)
??? private Integer?????????? ID?????????????? ;
??? private String??????????? NAME???????????? = "";
??? private String??????????? PATHNAME???????? = "";

5、==================================================================================================================

项目使用hibernate 并使用annotation进行对象映射,开始时提示如下:

Error:org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.zitong.beans.User"/ >

解决办法:

在hibernatefactory配置文件中,不要用Configuration()用AnnotationConfiguration() 此错误解决!

==============================================================================================================================
异常:oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys
换一个驱动解决这个问题,推荐使用classes12.jar
java.lang.AbstractMethodError: oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z
?at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123)
?at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
?at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
?at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
?at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
?at com.dao.sessionfactory.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:32)
?at com.dao.CommDao.addObject(CommDao.java:39)
?at com.dao.MeasCodeDao.addMeasCode(MeasCodeDao.java:20)
?at com.service