汪星人 发表于 2014-12-19 15:29

duplicate import: PaperMaster refers to both

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



异常信息:


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".


页: [1]
查看完整版本: duplicate import: PaperMaster refers to both