当前位置: 代码迷 >> JBoss >> 有关Hibernate中的SaveOrUpdate的有关问题
  详细解决方案

有关Hibernate中的SaveOrUpdate的有关问题

热度:4124   发布时间:2013-02-26 00:00:00.0
有关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动作。
  相关解决方案