论坛首页 Java企业应用论坛

一对多关系时的更新问题

浏览 5090 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-03-07  
我有一个News类,一个Category类,是一对多的关系(一个类别可以有多个新闻)

其他操作一切正常

我在更新一个News类的时候,比如改了它的标题,然后提交:

News a = session.load(.....);;
a.setTitle("AAAA");;
session.flush();;
session.connection();.commit();;

(工程比较大,不能贴全部的源文件!)
它不是修改原有的数据,而是添加一条新数据!怎么回事?
   发表时间:2004-03-07  
News a = session.load();
a.setTitle("AAAA");
session.update(a);
session.flush();
0 请登录后投票
   发表时间:2004-03-07  
一方:
   * @hibernate.set lazy="true" cascade="all"
   * @hibernate.collection-key column="A_id"
   * @hibernate.collection-one-to-many class="B"
多方:
   @hibernate.many-to-one column="B_id"
0 请登录后投票
   发表时间:2004-03-08  
wuweixian 写道
News a = session.load();
a.setTitle("AAAA");
session.update(a);
session.flush();


这个方法我是试过了,无效!
0 请登录后投票
   发表时间:2004-03-08  
47 [HttpProcessor[8080][4]] ERROR net.sf.hibernate.impl.SessionImpl    Could not synchronize database state with session net.sf.hibernate.TransientObjectException: object references an unsaved transient instance   save the transient instance before flushing: its.hibernate.WorkFlow

报错信息。

我的流程是这样的 workflow 和evaluteder是一对多的关系
可是当我修改的时候evluateder的表属性的时候,如果evlauateder的表里workflowid是null,修改就报这样的错误,如果workflowid是有值的,那修改就会成功。。请问这个是什么缘故呀?
0 请登录后投票
   发表时间:2004-03-08  
两位高手,你们的方法都不行呀!
0 请登录后投票
   发表时间:2004-03-08  
是不是这位兄弟把title属性设置成主键了?
0 请登录后投票
   发表时间:2004-03-08  
主键当然是专门的id
0 请登录后投票
   发表时间:2004-03-08  
引用
News a = session.load();


返回是什么?
是不是应该这样
News a = session.load(news,id);;
0 请登录后投票
   发表时间:2004-03-09  
请把涉及到此问题的相关代码贴上来。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics