该用户从未签到
|
问题不大,但如果不知道根源,也会浪费很多无辜的时间。
8 @9 o) Y, ~$ l/ W# D" N. a9 D
* @ p ?4 ?4 [1 t9 y, }5 A! ~
6 d: G- J, Z/ m8 B/ Q s! C7 H6 Q. Y/ r
异常信息:* x# X7 O7 B' l5 n" C: e
# n# X: W) o+ B# P+ X
; T$ [& l- L9 yCaused 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")
" e& b0 G( \8 m, Q+ K7 K1 W at org.hibernate.cfg.Mappings.addImport(Mappings.java:141)
( s! O: A: i$ l+ f4 v: u: g at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:614)$ Q k5 W" a5 ^6 @
at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:527)
% n a0 e! @/ u+ x at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:271)+ d2 F% e3 x, w" J
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)8 R. K" Q( z9 x
at org.hibernate.cfg.Configuration.add(Configuration.java:424)
1 }7 [0 f+ ~, B at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)
s6 Y( F0 ?, P( P- D2 r' x at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)+ a: p7 S- _* e1 ~8 _% [3 j
... 8 more$ o' ?8 z. y8 i; c! s! ?' `
f5 ^/ y1 _, V/ l$ e, j$ M4 i
8 W9 w. Q) O ]! @# D+ ?. |2 @0 g5 u3 D3 Z
$ _% @7 E- M1 z) k造成这个异常的原因可能是:
: e7 { P% K0 d, D$ B
+ b" l, p$ {* [2 m) y在你的工程里面,有两个TUser4类,比如:cn.com.test01.TUser4与cn.com.Test02.TUser4,虽然位于不同的包,但是会出现 duplicate import异常,解决办法如下:. ?# G. \8 V6 D( u! b
1 Z- V- i, `6 H; w( p1:比较简单的办法,更改其中一个类名。5 y9 e9 y& u2 O' N1 P1 l2 X5 L
+ o) g! n1 M5 G. r& }) T: D
2:第二种解决办法,将类TUser4的映射文件,<hibernate-mapping>结点后加上auto-import="false",默认为true,即变成<hibernate-mapping auto-import="false">,但是这样改了以后,千万要注意,在写HQL语句时候,比如"from cn.com.test01.TUser4",一定要加上完整包名,因为你设置了auto-import="false".& _/ ]8 `5 r- t
# p- u+ K; a: W; Z
/ n* u. |& J% s0 B+ c8 y
|
|