<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 117  文章 - 72  trackbacks - 0

    聲明:原創作品(標有[原]字樣)轉載時請注明出處,謝謝。

    常用鏈接

    常用設置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 155671
    • 排名 - 391

    最新評論

    [標題]:[原]Hibernate - TransientObjectException
    [時間]:2009-6-19
    [摘要]:object references an unsaved transient instance
    [關鍵字]:Hibernate,
    [環境]:Hibernate3.2,MyEclipse7.0,MySQL5.1
    [作者]:Winty (wintys@gmail.com) http://m.tkk7.com/wintys

    [錯誤]:
    ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
    org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: wintys.hibernate.manytomany.Course
        at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
        at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
        at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:78)
        at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:755)
        at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1143)
        at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:26)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:145)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
        at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at wintys.hibernate.manytomany.StudentDAOBean.insert(StudentDAOBean.java:49)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:68)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)
    object references an unsaved transient instance - save the transient instance before flushing: wintys.hibernate.manytomany.Course

    [原因]:
        使用session.save時,相關的級聯對象沒有被保存。

    [解決]:
    Either use session.save for both objects or specify a cascade="save-update,persist" in your mapping.
    即:
    1、加上cascade="all"
    <set name="courses" table="student_course" cascade="all">
    ...
    </set>
    程序中直接使用。
    session.save(student);

    2、修改程序,使相關的級聯對象先保存。
    session.save(course);//加上這一句
    session.save(student);//student中關聯了course

    [參考資料]:
    object references an unsaved transient instance - save the transient instance before flushing : http://blog.csdn.net/riseman/archive/2008/03/03/2143661.aspx

    原創作品,轉載請注明出處。
    作者:Winty (wintys@gmail.com)
    博客:http://m.tkk7.com/wintys

    posted on 2009-06-19 22:59 天堂露珠 閱讀(1116) 評論(1)  編輯  收藏 所屬分類: ErrorHibernate

    FeedBack:
    # re: [原]Hibernate - TransientObjectException 2009-09-25 11:02 阮若愁
    我都看了N篇關于這個錯的文章了 就你的最好最直接最有效 厲害 佩服  回復  更多評論
      
    主站蜘蛛池模板: 欧洲 亚洲 国产图片综合| 亚洲一区二区三区不卡在线播放| 亚洲精品日韩一区二区小说| 亚洲w码欧洲s码免费 | 亚洲av无码成人精品区在线播放 | 亚洲性在线看高清h片| 老司机福利在线免费观看| 国产视频精品免费| mm1313亚洲国产精品无码试看| 国产无遮挡吃胸膜奶免费看视频| 亚洲av永久无码天堂网| 亚洲精品第一国产综合境外资源| 一级毛片无遮挡免费全部| 亚洲人JIZZ日本人| 99久久精品免费视频| 亚洲一区中文字幕在线观看| 午夜爱爱免费视频| 香蕉视频在线观看免费| 不卡一卡二卡三亚洲| 91福利视频免费观看| 国产 亚洲 中文在线 字幕| 免费一看一级毛片人| 一个人看的www视频免费在线观看| 亚洲AV人无码激艳猛片| 无码精品A∨在线观看免费| 香蕉视频亚洲一级| 亚洲熟女少妇一区二区| 久久九九兔免费精品6| 亚洲AV日韩AV一区二区三曲| 2048亚洲精品国产| 免费观看激色视频网站(性色)| 亚洲av成人无码网站… | 亚洲电影在线播放| 国产一级一片免费播放| 国产免费无码AV片在线观看不卡| 亚洲毛片在线免费观看| 一本色道久久88综合亚洲精品高清| 华人在线精品免费观看| 亚洲日韩一中文字暮| 亚洲AV午夜成人片| 国产精品色午夜免费视频|