duplicate import解决办法

问题不大,但如果不知道根源,也会浪费很多无辜的时间。

 

异常信息:

 

Caused by: org.hibernate.DuplicateMappingException: duplicate import: TUser4 refers to both com.alcatel.cn.hibernate.ORMapping.onetomany.pojo.TUser4 and com.alcatel.cn.hibernate.chaper04.pojo.TUser4 (try using auto-import="false")
	at org.hibernate.cfg.Mappings.addImport(Mappings.java:141)
	at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:614)
	at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:527)
	at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:271)
	at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
	at org.hibernate.cfg.Configuration.add(Configuration.java:424)
	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)
	at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)
	... 8 more

 

造成这个异常的原因可能是:

在你的工程里面,有两个TUser4类,比如:cn.com.test01.TUser4与cn.com.Test02.TUser4,虽然位于不同的包,但是会出现 duplicate import异常,解决办法如下:

1:比较简单的办法,更改其中一个类名。

2:第二种解决办法,将类TUser4的映射文件,<hibernate-mapping>结点后加上auto-import="false",默认为true,即变成<hibernate-mapping auto-import="false">,但是这样改了以后,千万要注意,在写HQL语句时候,比如"from cn.com.test01.TUser4",一定要加上完整包名,因为你设置了auto-import="false".

 

你可能感兴趣的:(java,Hibernate)