该用户从未签到
|
问题不大,但如果不知道根源,也会浪费很多无辜的时间。
7 j& k4 x5 U# V8 |/ w1 M
% z. R8 c! K+ a# z' N$ c
$ }! a P" \9 N/ Y* T8 T/ W1 Q( [8 o& K/ I4 Q5 `
异常信息:
9 g- t2 S2 {1 a/ G5 B( {2 s2 X4 |* ]) f F& S/ @) ^& _
) ~. W5 W. s9 m: J4 m m8 x$ m
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")
4 p$ ~6 o8 T/ m) H! o) |' a) d% S at org.hibernate.cfg.Mappings.addImport(Mappings.java:141)9 T; U4 k% F# m+ @! O7 J3 \
at org.hibernate.cfg.HbmBinder.bindPersistentClassCommonValues(HbmBinder.java:614); q- }& w8 ?1 Y0 n8 u
at org.hibernate.cfg.HbmBinder.bindClass(HbmBinder.java:527)
% Y; ~+ Q2 P" t" k# s at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:271)5 ]$ F! O' L6 ?2 b0 k7 o
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
; @# ]: y- ?% ]! h' D" \ at org.hibernate.cfg.Configuration.add(Configuration.java:424)2 c" _" D9 p1 E8 C# B: r4 b
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:465)
, |; p. q2 I$ u& i at org.hibernate.cfg.Configuration.addResource(Configuration.java:520)/ O- x8 m, i8 g4 L ~2 z6 T
... 8 more0 H; A' L" a; ~
- g& @, c; ]7 T9 u0 l9 s/ w+ Q" r
7 }) F# ^. W! C' [4 a1 ^. Z( P
9 Y4 _$ ~6 @* J0 [* J
造成这个异常的原因可能是:
/ @5 ^! y& T. X3 }: V7 w# P' m, ]8 g( B, B$ l7 B
在你的工程里面,有两个TUser4类,比如:cn.com.test01.TUser4与cn.com.Test02.TUser4,虽然位于不同的包,但是会出现 duplicate import异常,解决办法如下:
6 z3 ?& i/ e0 N: m J$ [& A% \! Z9 a: P7 K k
1:比较简单的办法,更改其中一个类名。& [1 m G, ~3 D0 m: V7 J7 m
; r+ }) H6 s8 L( ]2:第二种解决办法,将类TUser4的映射文件,<hibernate-mapping>结点后加上auto-import="false",默认为true,即变成<hibernate-mapping auto-import="false">,但是这样改了以后,千万要注意,在写HQL语句时候,比如"from cn.com.test01.TUser4",一定要加上完整包名,因为你设置了auto-import="false".- G1 z# x" r2 B4 U3 ~8 y
9 r; A4 u4 O% I7 M8 }7 a- u" ~: D0 }7 u3 s) C
|
|