急!!全身家当求解!NHibernate中调用SaveOrUpdate方法为何更新不了!()

问题描述

(无满意结帐也会扣分...天纳)异常:Unexpectedrowcount:0;expected:1映射文件如下:<?xmlversion="1.0"encoding="utf-8"?><hibernate-mappingxmlns="urn:nhibernate-mapping-2.2"><classname="IQTC.Model.POCO.SW.AlterationDayPlan,IQTC.Model"table="SW_AlterationDayPlan"><idname="DayPlanId"type="String"unsaved-value="0"><columnname="DayPlanId"length="50"sql-type="varchar"not-null="false"unique="true"/><generatorclass="assigned"/></id><propertyname="MonthPlanId"type="String"><columnname="MonthPlanId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="ConstructDate"type="String"><columnname="ConstructDate"length="50"sql-type="varchar"not-null="true"/></property><propertyname="LeadId"type="String"><columnname="LeadId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="ConstructSpace"type="String"><columnname="ConstructSpace"length="50"sql-type="varchar"not-null="true"/></property><propertyname="ConstructTermId"type="String"><columnname="ConstructTermId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="Remark"type="String"><columnname="Remark"length="100"sql-type="varchar"not-null="true"/></property><propertyname="StationName"type="String"><columnname="StationName"length="50"sql-type="varchar"not-null="true"/></property><propertyname="LeadWorkarea"type="String"><columnname="LeadWorkarea"length="50"sql-type="varchar"not-null="true"/></property><propertyname="LineId"type="String"><columnname="LineId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="StationId"type="String"><columnname="StationId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="LineType"type="String"><columnname="LineType"length="50"sql-type="varchar"not-null="true"/></property><propertyname="MoEstate"type="String"><columnname="MoEstate"length="100"sql-type="varchar"not-null="true"/></property><propertyname="RegId"type="String"><columnname="RegId"length="50"sql-type="varchar"not-null="true"/></property><propertyname="DateTimeNow"type="String"><columnname="DateTimeNow"length="50"sql-type="Datetime"not-null="true"/></property></class></hibernate-mapping>调用SaveOrUpdate()publicvoidUpdate(AlterationDayPlanitem){ISessionsession=newSW.Generic.NhibernateSession().GetSession();ITransactiontransaction=session.BeginTransaction();try{if(item!=null){session.SaveOrUpdate(item);transaction.Commit();session.Flush();}}catch(HibernateExceptionhex){transaction.Rollback();throwhex;}finally{session.Close();}}

解决方案

解决方案二:
楼主你的item不是当前Session取得的,那么至少应该是"游离"状态的才可以(新的ISession可以还原游离的item为持久对象),你这种方式插入新的记录应该是可以的(其他地方代码没错的话),但更新可能会有问题。可能是这个原因吧:建议这样修改:publicvoidUpdate(AlterationDayPlanitem,ISessionsession){ITransactiontransaction=session.BeginTransaction();try{if(item!=null){session.SaveOrUpdate(item);transaction.Commit();session.Flush();}}catch(HibernateExceptionhex){transaction.Rollback();throwhex;}finally{session.Close();}}

item是ISession取得的,所以和ISession一起传入
解决方案三:
谢谢你的建议,我试一下

时间: 2024-10-31 22:00:53

急!!全身家当求解!NHibernate中调用SaveOrUpdate方法为何更新不了!()的相关文章

魅族手机input-file不能在webview中调用openFileChooser方法

问题描述 魅族手机input-file不能在webview中调用openFileChooser方法 我想在webview调用系统的相册和照相机,大部分手机都没问题,出了魅族和vivo,就根本不调用openFileChooser这个方法,求解!! 解决方案 http://bbs.anzhuo.cn/thread-942053-1-1.html

link中如何从接口中调用一个方法的参数的类型似乎不对是怎么回事?

问题描述 link中如何从接口中调用一个方法的参数的类型似乎不对是怎么回事? link中如何从接口中调用一个方法的参数的类型似乎不对是怎么回事?

图片-jsp中调用java方法,方法中文件路径问题

问题描述 jsp中调用java方法,方法中文件路径问题 我在jsp中了写了java代码调用java类的方法,方法中需要在网页下载一张图片保存 OutputStream os = new FileOutputStream(new File("identityCode/checkimage.JPEG")); 我这样写的,然后一直报 :系统找不到文件路径.路径各种都换了 还是不行 解决方案 解决JSP路径问题的方法jsp路径问题解决方法jsp调用js文件中文乱码问题解决方法 解决方案二: 试

android-从 Javascript 中调用 Android 方法

问题描述 从 Javascript 中调用 Android 方法 我在 android 的 webview 中使用 geo-location 特征.使用 javascript (onload) 来调用Android 方法: public void getLocation() { _context.getLocation(); } 当程序执行到以下的位置时: public void locationUpdated(Location location) { NumberFormat frm = Nu

link中调用一个方法,出现两个括号是什么意思?比如LoadEvent()();这个有什么用?

问题描述 link中调用一个方法,出现两个括号是什么意思?比如LoadEvent()();这个有什么用? link中调用一个方法,出现两个括号是什么意思?比如LoadEvent()();这个有什么用? 解决方案 有没有更进一步的代码,看下LoadEvent()返回的是什么类型,是不是返回的是一个委托?如果是委托,可以继续调用.

conversation.getMessage(int Pos)这个方法已经去掉了,但是我需要在adapter中调用这个方法,请问有什么解决办法吗,谢谢

问题描述 conversation.getMessage(int Pos)这个方法已经去掉了,但是我需要在adapter中调用这个方法,请问有什么解决办法吗,谢谢 解决方案 EMChatManager里有这个方法

使用hibernate 的saveOrUpdate方法,更新不了数据

问题描述 使用hibernate的saveOrUpdate方法,更新不了数据,请教?publicvoidupdateTest(Stringnum,Sessionsession){Stringhql="FROMTestaWHEREnum=?";Queryq=session.createQuery(hql);q.setString(0,num);Listlist=q.list();for(inti=0;i<list.size();i++){Testt=(Test)list.get(i

在ASP.NET中调用存储过程方法新解

asp.net|存储过程 在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作.调用存储过程实现数据库操作使很多程序员使用的方法,而且大多数的程序员都是能使用存储过程就使用存储过程,很少直接使用SQL语句,所以存储过程是很有用而且很重要的. 存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与

如何在Oracle存储过程中调用Java方法

存储过程中调用Java程序段 软件环境: 1.操作系统:Windows 2000 Server 2.数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版 3.安装路径:C:\ORACLE 实现方法: 1.创建一个文件为Test.java public class Test { public static void main(String args[]) { System.out.println("HELLO THIS iS A Java PROCEDURE"):