你是不是执行了一些操作,查出那条要更新的记录,又session.close(我从不关闭session);又要更新它,就出错了。
解决方案 »
- c:choose when test=${}
- 如何成功推广一个网站
- 单例与池化之间的并发性能,到底有什么区别?
- 怎样用EL和JSTL在页面上显示等边三角形?
- ssh整合问题
- 大家对request.getParameter(参数)有没有好办法?
- 菜鸟问题,j2ee到底是啥?
- 求教:关于java的一个小问题(回答精辟者送分)
- 大家有没有用过jCom的,客户端是windows application高手有什么经验么?
- Integer是封装类型,也就是对象,为什么在参数传递时任然时值传递而不是引用传递呢
- java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver 如何是好啊!!!急啊
- Hibernate连接错误,请教原因
{
Session session = HibernateUtil.currentSession();
Transaction tc = session.beginTransaction();
try
{
TGwMb tgwmb=(TGwMb)session.load(TGwMb.class,CGwmbId);
tgwmb.setCDeptId(cDeptId);
tgwmb.setCFlag(cFlag);
tgwmb.setCBz(cBz);
tgwmb.setCGwTitle(cGwTitle);
session.update(tgwmb);
tc.commit();
}
catch(Exception e)
{
tc.rollback();
e.printStackTrace();
}
}
所以没有办法进行更新操作如果要更新数据,必须要保证数据存在的情况下才能进行更新
可是你这个错误:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.lib.ygt.database.TGwMb#0000000008]就是提示不存在C_GWMB_ID = "0000000008"的数据
当然我起的table字段名是英文的
这样可以更新数据,如果数据库里有相应的数据的话
CGwmbId这个不应该是数据库的字段,是你的配置文件中对应的MAPPING的描述值,还有注意你的CGwmbId类型,你检查一下
你的错误应该是没有找到你要的那个对象,所以当你set属性的时候就出错了,因为你强制
类型转换的时候是空的对象转换!!