该用户从未签到
|
问题不大,但如果不知道根源,也会浪费很多无辜的时间。6 [8 {9 l) v( Z' k' J2 I/ s/ b! m4 i; O7 x
- b1 m) i2 c# z
& [5 T' e( ^. m# y) |
V% f5 K% ]) m& W9 m4 V% O异常信息:
( c4 u7 n2 @& w h4 ]2 a# `. X& Q1 v0 e& }# S2 X+ {- q
. ` f3 ]/ ]+ {
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")/ i3 G; ]7 M6 v
at org.hibernate.cfg.Mappings.addImport(Mappings.java:141)
7 i. k& S/ H: M6 }/ G7 ` at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:614)8 F# }0 d; _6 C' Q3 R
at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:527)* ^: `+ H2 _0 N& K( d& H9 M. m
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:271)6 j1 a8 q) V x9 D4 t. v& S
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
( z: O5 Y/ y. G: Q+ c' ? at org.hibernate.cfg.Configuration.add(Configuration.java:424). W' p7 _8 E- Q/ O- ?
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)
/ e. E" K& L: g5 B at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)
, E3 L6 s3 K2 g J! Y5 U4 V" N8 C$ G ... 8 more
0 q1 Z# z/ A+ Q$ a2 y$ i6 S% L1 l" }2 X% v `/ D; n: V
0 l) k0 ]0 Q; P+ L! M
& u- W* p# a: j, ^" f" c8 s7 ~& `. O: F: _# R/ T2 r# w
造成这个异常的原因可能是:
8 G, j5 I# E0 B' _3 j! E" e6 Z3 |9 ~" H/ h$ z* P/ c' }
在你的工程里面,有两个TUser4类,比如:cn.com.test01.TUser4与cn.com.Test02.TUser4,虽然位于不同的包,但是会出现 duplicate import异常,解决办法如下:- c# T' t8 I1 m( b1 x5 J2 D
. y, _5 Y* M0 O, f7 ^% i1:比较简单的办法,更改其中一个类名。
* ^6 w# c. X t
1 X! C4 c: q- k4 C8 X( O- |2:第二种解决办法,将类TUser4的映射文件,<hibernate-mapping>结点后加上auto-import="false",默认为true,即变成<hibernate-mapping auto-import="false">,但是这样改了以后,千万要注意,在写HQL语句时候,比如"from cn.com.test01.TUser4",一定要加上完整包名,因为你设置了auto-import="false".2 F' d8 ]4 b- l% A5 W
! V# w( B% i+ t6 R7 Z
4 ?& N! D U5 i1 a# X3 M6 s0 }. ~ |
|