该用户从未签到
|
问题不大,但如果不知道根源,也会浪费很多无辜的时间。
6 W: X9 {7 u7 ^+ b% W' J( [" c2 k1 d8 Z0 D6 a; O
6 J5 }! D% s, g# N) A- D1 K& z0 R; j4 c# p/ \( D, L
异常信息:
1 [+ z! @& C5 |( o. W
4 F$ h6 d: A$ o: }& A, ^( C1 J5 I& T
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")
, _. C* p0 _. S8 N! D C1 ]3 A at org.hibernate.cfg.Mappings.addImport(Mappings.java:141)
2 D- d2 }7 S9 w at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:614)
$ K+ `4 [: M3 E1 }# Y at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:527)
9 ^0 k, f( Y- J at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:271)
6 `. b ~+ E" r6 [: `. V4 {6 N at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
1 w' t5 j3 c) C& t1 X at org.hibernate.cfg.Configuration.add(Configuration.java:424)
! O4 g# X% h- ?# M2 X2 K at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)+ x- w- i) C4 R' O! v! ?# G8 `
at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)' N4 C7 T3 k6 @+ ^$ c: u( A
... 8 more7 ^( u6 a/ h: X
2 u% k) g2 }' `8 M9 M, f1 d. `2 Z. b
. r- `: p4 y' t. J# F7 C4 e# ^$ I8 p/ _& v/ U' Z5 E
$ d0 y. l9 U$ _3 u& D造成这个异常的原因可能是:
5 n! O* z+ a v% B4 Y; h2 G# W" D a5 l1 h
在你的工程里面,有两个TUser4类,比如:cn.com.test01.TUser4与cn.com.Test02.TUser4,虽然位于不同的包,但是会出现 duplicate import异常,解决办法如下:( M( E' F4 f1 O- \- [
4 B- Z1 R1 Z1 s1 L( ~9 T, K$ S
1:比较简单的办法,更改其中一个类名。
1 [1 ~. k, X2 P2 {5 F: B) H/ E* s- P9 F+ ]) L3 o# R5 x
2:第二种解决办法,将类TUser4的映射文件,<hibernate-mapping>结点后加上auto-import="false",默认为true,即变成<hibernate-mapping auto-import="false">,但是这样改了以后,千万要注意,在写HQL语句时候,比如"from cn.com.test01.TUser4",一定要加上完整包名,因为你设置了auto-import="false".
7 _- O+ I4 R% a, D' [: ^4 [5 A
! S# O- H% K) b$ M# v
+ M1 K2 E$ ~8 J. q |
|