ssh2 中机制,或者叫事务 的问题 囧死我了. 另,如果我在程序中把这个ID写死 "XXXX" 是可以存放到数据库的.但是写死的ID,不能和原来的ID一样.如果一样也存不进去. 为什么啊- - 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String temp=this.getPeriodId().toString();//这是关联的ID this.getVotePeriod().setPeriodId(periodId); this.getVotePeriod().setUserId(users.getUserID()); this.getVotePeriod().setDepartmentId(users.getDepartmentID()); this.getVoteService().updatePeriod(this.getVotePeriod()); voteService.deleteAll(voteService.find(" from Voteinee where periodId='"+this.getPeriodId()+"'"));//先把“多”这张表里的相关数据删除 if(voteUsers!=null&&!voteUsers.equals("")){//再插进去。 String []vUsers =voteUsers.split(","); for(int i=0;i<vUsers.length;i++){ Voteinee voteinee=new Voteinee(); voteinee.setVoteineeId(Utilities.getUUID()); voteinee.setPeriodId(temp);//这里一直是有值的。但是存进去后,数据库看不到,其他的字段都有值。如果我把这里写成固定的,只要不是和这个值一样就能写进去,如果一样的话还是写不进去。 比如这里的ID应该是 XXX 那么我写死,只要不是XXX就能写进去 voteinee.setUserId(Integer.parseInt(vUsers[i])); voteService.saveObject(voteinee); } }这是部分代码 String temp=this.getPeriodId().toString();//这是关联的ID你换成这个试试String temp=new String(this.getPeriodId().toString()); 楼主需要在删除之后commit一下然后再进行判断和insert操作SessionFactiory s = new Configuration().configure().buildSessionFactory();Session session = s.openSession();Transaction t = session.beginTransaction();session.delete("para");//提交事务t.commit();//楼主的相关业务代码......session.update("..."); //session.insert("..."); 对了 之前要把aotoCommit设置为false 并不是数据没提交.voteService.saveObject(voteinee);这一行就会提交一次数据. 我只是那个字段的数据没有了. 而不是整行的数据. 只要ID跟那个一样就不行. 哪怕我写"XXX" 这样也不行 老大 你看看你的代码你看我看不懂我的代码吗你开启事务了吗 你知道什么叫提交? 什么是commit 什么是托管,游离这是hibernate最基本的 自己去查查吧 我不是这个意思. 我是说 如果没 commit的话, 应该是这一行数据都插不进去吧. 不会只是少一个字段吧?或者说是每个字段都要commit? 我刚接触JAVA不久,有白的地方请包涵... spring 管理的sessionfactory么?配置控制器了么?也就是切面?如果没配置切面的东西,spring就不会知道对哪些类的哪些方法执行事务了,也不会有事务的东西,包括事务提交数据库有隔离级别的,你没提交事务,数据库怎么会有数据呢,因为之前可能会出错回滚数据 会不会是数据类型不对啊temp 是String类型PeriodId应该不是String 是number的吧 接分。。 这个我再看看. 但是这是一个字段的丢失. 不知道是怎么回事呢. 我在想,要不这里用JDBC做算了. 回滚操作也不应该丢失一个字段啊- -.另. 都是STRING类型的 这种错误会报错的....我程序没报错.. 请教高手,我的java文件生成exe文件后,相对路径怎么改成绝对路径? MyEclipse关闭 Tomcat出现异常 回复 注册后 去邮箱激活 XML的文档类型声明我该去哪里找呢??? 救命:关于ibatis和ehcache的问题,谢谢 struts入门问题,关于参数传递 求救 !!!tomcat+j2sdk1.5版本问题 JDBC2.0引入DataSource是干吗用的? redis的setnx为什么能实现分布式锁? 请问Hibernate 映射生成Java类要怎样配置? JFreeChart 改变坐标轴的颜色
String temp=this.getPeriodId().toString();//这是关联的ID
this.getVotePeriod().setPeriodId(periodId);
this.getVotePeriod().setUserId(users.getUserID());
this.getVotePeriod().setDepartmentId(users.getDepartmentID());
this.getVoteService().updatePeriod(this.getVotePeriod());
voteService.deleteAll(voteService.find(" from Voteinee where periodId='"+this.getPeriodId()+"'"));//先把“多”这张表里的相关数据删除
if(voteUsers!=null&&!voteUsers.equals("")){//再插进去。
String []vUsers =voteUsers.split(",");
for(int i=0;i<vUsers.length;i++){
Voteinee voteinee=new Voteinee();
voteinee.setVoteineeId(Utilities.getUUID());
voteinee.setPeriodId(temp);//这里一直是有值的。但是存进去后,数据库看不到,其他的字段都有值。如果我把这里写成固定的,只要不是和这个值一样就能写进去,如果一样的话还是写不进去。 比如这里的ID应该是 XXX 那么我写死,只要不是XXX就能写进去
voteinee.setUserId(Integer.parseInt(vUsers[i]));
voteService.saveObject(voteinee);
}
}这是部分代码
你换成这个试试
String temp=new String(this.getPeriodId().toString());
SessionFactiory s = new Configuration().configure().buildSessionFactory();Session session = s.openSession();Transaction t = session.beginTransaction();session.delete("para");//提交事务
t.commit();
//楼主的相关业务代码
......
session.update("..."); //session.insert("...");
voteService.saveObject(voteinee);
这一行就会提交一次数据.
我只是那个字段的数据没有了.
而不是整行的数据.
老大 你看看你的代码你看我看不懂我的代码吗你开启事务了吗 你知道什么叫提交? 什么是commit 什么是托管,游离这是hibernate最基本的 自己去查查吧
我不是这个意思.
我是说 如果没 commit的话, 应该是这一行数据都插不进去吧.
不会只是少一个字段吧?
或者说是每个字段都要commit?
我刚接触JAVA不久,有白的地方请包涵...
配置控制器了么?也就是切面?
如果没配置切面的东西,spring就不会知道对哪些类的哪些方法执行事务了,也不会有事务的东西,包括事务提交
数据库有隔离级别的,你没提交事务,数据库怎么会有数据呢,因为之前可能会出错回滚数据
temp 是String类型
PeriodId应该不是String 是number的吧
接分。。
但是这是一个字段的丢失. 不知道是怎么回事呢.
我在想,要不这里用JDBC做算了.
回滚操作也不应该丢失一个字段啊- -.另. 都是STRING类型的 这种错误会报错的....我程序没报错..