首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

有关Hibernate中的SaveOrUpdate的有关问题

2012-02-29 
有关Hibernate中的SaveOrUpdate的问题我是用NHibernate和SQL2000数据库做的一个项目,在Mapping中有3个表配

有关Hibernate中的SaveOrUpdate的问题
我是用NHibernate和SQL2000数据库做的一个项目,在Mapping中有3个表配置,其中A是主对象,b、c是A的两个子,A与b、c是一对多的关系,我现在遇到的问题是在保存的时候出的问题具体情况如下:
private void save(A a)
{
  ADataAccess m_Access = new ADataAccess()
  m_Access.BeginTransaction();
  try
  {
  m_Access.Save(a);
  m_Access.Session.Flush();
  //此方法是做另外的事儿
  SaveOther();
  m_Access.Commit();
  }
  catch
  {
  m_Access.RollBack();
  throw;
  }
  finally
  {
  m_Access.Session.Close();
  }
}
第一次执行的时候是在方法SaveOther()中报错,弹出一个错误窗口,然后我再点执行方法Save(A a)的这个按钮那么就是在执行到m_Access.Session.Flush()时报如下的错误
SQL insert,update or delete failed(expected affected row count:1,actual affected row count:0).Possible causes:the row was modified or deleted by another user,or a trigger is reporting misleading row count
其中在方法m_Access.Save()中是这样写的:
public void Save(A a)
{
  if(a.主键在数据库中存在)
  Session.Update(a);
  else
  Session.Save(a);
}
请教各位大虾这是什么原因引起的呢,应该如何解决呢???急啊,还望各位大虾指点指点,先在此谢谢啦!!!!

[解决办法]
跟踪一下Save过程,看是执行了Update还是Save动作。

热点排行