另,如果我在程序中把这个ID写死 "XXXX" 是可以存放到数据库的.但是写死的ID,不能和原来的ID一样.如果一样也存不进去.
 为什么啊- -

解决方案 »

  1.   


                    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);
    }
    }这是部分代码
      

  2.   

    String temp=this.getPeriodId().toString();//这是关联的ID
    你换成这个试试
    String temp=new String(this.getPeriodId().toString());
      

  3.   

    楼主需要在删除之后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("...");
      

  4.   

    对了 之前要把aotoCommit设置为false
      

  5.   

    并不是数据没提交.
    voteService.saveObject(voteinee);
    这一行就会提交一次数据.
     我只是那个字段的数据没有了.
      而不是整行的数据.
      

  6.   

    只要ID跟那个一样就不行. 哪怕我写"XXX" 这样也不行
      

  7.   


    老大 你看看你的代码你看我看不懂我的代码吗你开启事务了吗 你知道什么叫提交? 什么是commit 什么是托管,游离这是hibernate最基本的  自己去查查吧
      

  8.   


    我不是这个意思.
     我是说 如果没 commit的话, 应该是这一行数据都插不进去吧.
     不会只是少一个字段吧?
    或者说是每个字段都要commit?
      我刚接触JAVA不久,有白的地方请包涵...
      

  9.   

    spring 管理的sessionfactory么?
    配置控制器了么?也就是切面?
    如果没配置切面的东西,spring就不会知道对哪些类的哪些方法执行事务了,也不会有事务的东西,包括事务提交
    数据库有隔离级别的,你没提交事务,数据库怎么会有数据呢,因为之前可能会出错回滚数据
      

  10.   

     会不会是数据类型不对啊
    temp 是String类型
    PeriodId应该不是String  是number的吧 

    接分。。
      

  11.   

    这个我再看看.
     但是这是一个字段的丢失. 不知道是怎么回事呢.
      我在想,要不这里用JDBC做算了.
       回滚操作也不应该丢失一个字段啊- -.另.  都是STRING类型的  这种错误会报错的....我程序没报错..