多个线程同时并发
同时new 一个业务对象
{UserModel model = new UserModel();然后删除
model.deleteUser(al); } 删除的代码如下 Session session = dao.getSession();
Transaction ta = session.beginTransaction();
启动事务
ta.begin();
if (dao.findById(userDTO.getId()) != null) {
session.clear();
dao.delete(user);
} else {
ystem.out.println("not delete,That ID haes ceased to exist:"+ userDTO.getId());
}
ta.commit();
session.close();结果抛出异常org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.linkey.model.UserModel.deleteUser(UserModel.java:116)
at com.linkey.test.UserModelTest.del(UserModelTest.java:85)
at com.linkey.test.TestThreads$Inc.run(TestThreads.java:18)
at java.lang.Thread.run(Unknown Source)
同时new 一个业务对象
{UserModel model = new UserModel();然后删除
model.deleteUser(al); } 删除的代码如下 Session session = dao.getSession();
Transaction ta = session.beginTransaction();
启动事务
ta.begin();
if (dao.findById(userDTO.getId()) != null) {
session.clear();
dao.delete(user);
} else {
ystem.out.println("not delete,That ID haes ceased to exist:"+ userDTO.getId());
}
ta.commit();
session.close();结果抛出异常org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.linkey.model.UserModel.deleteUser(UserModel.java:116)
at com.linkey.test.UserModelTest.del(UserModelTest.java:85)
at com.linkey.test.TestThreads$Inc.run(TestThreads.java:18)
at java.lang.Thread.run(Unknown Source)
解决方案 »
- Flex上传大文件最佳解决方案是?????
- hibernate 关联 关系 我非常疑惑
- fileupload上传文件的路径问题??
- 如何解决Eclipse导入的中文内容为乱码?
- 急!!!!在线等!!兄弟都不帮我!!不然我要去跳楼了
- 各位高人 请问在注册里边加入头像和在发帖里边加入表情数据库因该怎么写阿
- 我是新手,请教三个很菜的问题。。
- 在servlet中有无jsp中类似“<jsp:setProperty name="a1" property="*" />”
- 那里有源代码公开的JSP购物程序下载啊?
- 求助,环境变量配置好了TOMCAT9启动闪退
- IE7 文件下载时弹出文件保存框,其中文件类型显示错误的问题
- calendar问题
在动行下面代码的时候:Transaction ta = session.beginTransaction(); 这时事务就已经启动.
从你的错误信息上看,有可能是你的mapping配置或数据库的级联设置出了问题.
下面是我以前写的一段删除代码希望对你有所帮助:
public void delStudent(BaseDM baseDM) throws FatalException {
Student bean=(Student)baseDM;
StudentDAO dao=new StudentDAO();
bean=dao.findById(bean.getId());
Session s=HibernateSessionFactory.getSession();
Transaction t=s.beginTransaction();
s.delete(bean);
t.commit();
s.flush();
s.close();
}