LifeNote
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
統計
隨筆 - 47
文章 - 1
評論 - 105
引用 - 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(4)
給我留言
查看公開留言
查看私人留言
隨筆分類
(120)
Hibernate(19)
(rss)
Java(28)
(rss)
Javascript(16)
(rss)
Mysql(4)
(rss)
Oracle(3)
(rss)
Others(5)
(rss)
Spring(18)
(rss)
struts(11)
(rss)
Tapestry(8)
(rss)
tomcat(8)
(rss)
隨筆檔案
(47)
2008年5月 (1)
2008年4月 (4)
2008年3月 (7)
2008年2月 (2)
2008年1月 (7)
2007年12月 (26)
文章檔案
(1)
2007年12月 (1)
相冊
my photo
技術聯接
Hibernate3提供了DetachedCriteria
Ajax in action
beansoft
freewebblogger
jajala
javascript framework
JQuery
oksonic
teacher .li
yourjava
強烈推薦學習
報表軟件
花錢的年華
積分與排名
積分 - 148664
排名 - 420
最新評論
1.?re: Hibernate中Criteria的完整用法
好東西!
--Java部落
2.?re: Hibernate中Criteria的完整用法
傻b
--到底
3.?re: Eclipse下的Java反編譯插件:Jode Decompiler
@bangbang
請問,在jdk幾下能用啊?
--mengfei
4.?re: 一個免費的空間
fghfgh
--lijunliang
5.?re: Hibernate中Criteria的完整用法 [未登錄]
抄文檔的2B,你TM有病吧
--123
閱讀排行榜
1.?Hibernate中Criteria的完整用法 (46726)
2.?解決Eclipse啟動錯誤 jvm terminated. exit code 1(10794)
3.?Eclipse下的Java反編譯插件:Jode Decompiler(7629)
4.?Java數據庫操作基本流程(6036)
5.?Javascript----文件操作(5526)
評論排行榜
1.?一個免費的空間(11)
2.?Spring整合Hibernate 莫名其妙的錯誤 (11)
3.?Eclipse下的Java反編譯插件:Jode Decompiler(9)
4.?Hibernate中Criteria的完整用法 (7)
5.?封裝了一個hibernate 整合spring 的dao對象(7)
Spring整合Hibernate 莫名其妙的錯誤
今天寫了個程序 Spring整合Hibernate 使用Spring中的HibernateTemplate 通過配置程序可以運行起來 并可以操作數據庫 但程序執行過程中會有異常 不知道是什么錯誤 一下是程序執行的異常
Hibernate: insert into test.student (STUNAME, AGE, SEX, PHONE) values (
?
,
?
,
?
,
?
)
java.lang.RuntimeException
at com.stu.server.StudentServer.addStudentByCondition(StudentServer.java:
30
)
at com.stu.server.StudentServer$$FastClassByCGLIB$$8fef4d1a.invoke(
<
generated
>
)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:
149
)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:
696
)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
149
)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:
106
)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:
171
)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:
631
)
at com.stu.server.StudentServer$$EnhancerByCGLIB$$f5f4d830.addStudentByCondition(
<
generated
>
)
at com.stu.test.Test.main(Test.java:
33
)
Hibernate: update test.student set STUNAME
=?
, AGE
=?
, SEX
=?
, PHONE
=?
where ID
=?
還麻煩各位幫忙指點一下 程序我上傳上來了,另外還請哪個大哥幫忙指出這程序的不足之處
程序下載地址:
http://www.aygfsteel.com/Files/lifenote/HibernateInSpring.rar
posted on 2007-12-07 10:20
LifeNote
閱讀(1792)
評論(11)
編輯
收藏
所屬分類:
Java
、
Hibernate
、
Spring
Comments
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 11:12
我知道異常了 我使用的是spring的聲明事務 當年齡小于30的時候就拋異常并且回滾事務 可現在并沒有回滾 還麻煩個位看看 多謝
getStudentDAO().save(stu);
stu.setAge( stu.getAge()+10);
if(stu.getAge()<30){ //這里拋個異常就回滾了 不用rollback了
throw new RuntimeException();
}
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤 [未登錄]
flustar
Posted @ 2007-12-07 11:28
建議你把hbm文件中的 catalog="test" 去掉 另外你的hibernate.cfg.xml是多余的
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
Tiger F
Posted @ 2007-12-07 11:32
兩個問題:
既然使用了spring的聲明事物,就不應該再自己聲明事物了。spring的聲明事物就是檢查是否有異常出現來決定最后是提交還是回滾的,所以必須使用異常。
所以你的server程序應該寫為:(似乎根本不需要回滾)
public void addStudentByCondition(Student stu){
if(stu.getAge()>=30)
getStudentDAO().save(stu);
}
如果因為有其他邏輯需要回滾的話,應該這樣:
public void addStudentByCondition(Student stu){
if(stu.getAge()<30)
throw new MyBizException(); // 建議自定義一個有業務意義的異常
getStudentDAO().save(stu);
}
另一個問題,你的Dao類在使用templage方法是都自己做了異常處理,但是你的異常處理無實質內容,這個做法會影響到事物的。如果你不知道應該如何處理這些異常,最好就是不要管他。
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 11:34
catalog="test" 這個只是數據庫的名字啊
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 11:38
既然我在
if(stu.getAge()<30){ //這里拋個異常就回滾了 不用rollback了
throw new RuntimeException();
}這里拋了異常為什么程序還是沒有回滾呢
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
Tiger F
Posted @ 2007-12-07 14:41
如果你的程序還是原來那個樣子,雖然拋出了異常也是被你自己捕獲了,并沒有被spring捕獲到。
spring既然不知道發生了異常,當然不會回滾事物了。
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 16:28
請問那要如何處理事務呢 我有些糊涂了 麻煩 把那程序修改后把代碼貼上來 好么 十分感謝 學習中
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
Tiger F
Posted @ 2007-12-07 16:30
我貼了呀,上面。只要把addStudentByCondition函數的實現完整替換一下,至少是能回滾了。
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 16:35
您是說
if(stu.getAge()<30)
throw new MyBizException(); // 建議自定義一個有業務意義的異常
getStudentDAO().save(stu);
}
這里new MyBizException(); 是自己捕獲了么 ?
那這樣和你說的 這個:
雖然拋出了異常也是被你自己捕獲了,并沒有被spring捕獲到。
spring既然不知道發生了異常,當然不會回滾事物了。
也沒有被spring知道啊 如何回滾呢
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
Tiger F
Posted @ 2007-12-07 16:59
public void addStudentByCondition(Student stu){
if(stu.getAge()<30)
throw new MyBizException(); // 可以用RuntimeException替換
getStudentDAO().save(stu);
}
注意,整個addStudentByCondition函數應該就這幾行,而不是修改這三行。
把你的try/catch之類的統統刪除。
回復
更多評論
#
re: Spring整合Hibernate 莫名其妙的錯誤
LifeNote
Posted @ 2007-12-07 17:02
哦 明白你的意思了 十分感謝!!!
回復
更多評論
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Java數據庫操作基本流程
使用動態代理實現用AOP對數據庫進行操作
如何獲得鼠標的當前位置
Javascript----文件操作
兩種特殊的java容器類list和set分析
《J2EE核心模式》(DAO模式)
JSF中文輸入亂碼問題解決方法
Tomcat,Weblogic 等服務器 SSL 安全登陸的例子---附證書文件生成器
一個Struts的上傳下載文件的程序
java.lang.OutOfMemoryError 的解決辦法
Powered by:
BlogJava
Copyright © LifeNote
主站蜘蛛池模板:
邵阳市
|
临颍县
|
鱼台县
|
弋阳县
|
芦山县
|
南靖县
|
海伦市
|
渝北区
|
遂昌县
|
肥城市
|
东方市
|
大石桥市
|
南召县
|
资中县
|
日喀则市
|
内丘县
|
民勤县
|
岗巴县
|
亚东县
|
古蔺县
|
全州县
|
南充市
|
禹州市
|
如皋市
|
琼中
|
康马县
|
沾化县
|
通河县
|
榆林市
|
内黄县
|
呼和浩特市
|
都昌县
|
会宁县
|
遂川县
|
瑞丽市
|
满城县
|
菏泽市
|
南漳县
|
贵定县
|
六盘水市
|
微博
|