<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)

    搜索

    •  

    積分與排名

    • 積分 - 155648
    • 排名 - 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篇關于這個錯的文章了 就你的最好最直接最有效 厲害 佩服  回復  更多評論
      
    主站蜘蛛池模板: 国产成人 亚洲欧洲| 中文字幕 亚洲 有码 在线 | 57pao一国产成永久免费| 国产成人精品日本亚洲网站| 中国一级全黄的免费观看| 国外亚洲成AV人片在线观看| 中文字幕在线视频免费观看| 亚洲三区在线观看无套内射| 中文字幕免费播放| 久久精品国产亚洲香蕉| 色猫咪免费人成网站在线观看 | 亚洲精品无码精品mV在线观看| CAOPORM国产精品视频免费| 亚洲一区二区三区香蕉| 少妇性饥渴无码A区免费 | 免费无码看av的网站| 美国毛片亚洲社区在线观看 | 男男gvh肉在线观看免费| 免费在线观看黄网| jizz日本免费| 精品亚洲国产成AV人片传媒| 久久午夜免费视频| 色费女人18女人毛片免费视频 | 69xx免费观看视频| 亚洲精品女同中文字幕| 亚洲毛片av日韩av无码| 日本视频免费高清一本18| 亚洲国产av美女网站| 啊v在线免费观看| 很黄很污的网站免费| 亚洲天堂一区二区三区| 免费一看一级毛片| 国产精品免费大片| 中文字幕亚洲码在线| 亚洲国产精品视频| 国产91色综合久久免费| 污视频网站免费在线观看| 亚洲精品免费视频| 国产三级免费电影| 精品视频一区二区三区免费| 亚洲 日韩 色 图网站|