org.hibernate.SessionFactory sessionFactory = new org.hibernate.cfg.
    Configuration().configure().buildSessionFactory();
java.util.List list;
Session session = sessionFactory.openSession();
Transaction tx=session.beginTransaction();
Query qry=session.createQuery("from GradeActFrm");
    list=qry.list(); 
    for(int i=0;i<list.size();i++)
    {
     GradeActFrm grade=(GradeActFrm) list.get(0);
     grade.setTag(0);
     session.update(grade);
    
    }     
        for(int i=0;i<list.size();i++)
    {
     GradeActFrm grade=(GradeActFrm) list.get(0);
     System.out.println(grade.getTag()+" ");
    } 
        tx.commit();
        session.flush();
        session.close();
上面是我的测试代码
目的是把表中的每一条记录的Tag的值都改成0
测试的输出都是 0 
好像可以实现
但是去数据库里面打开表看
里面都是没有修改的
小弟菜鸟
大家帮帮忙
谢谢了

解决方案 »

  1.   


    你把tx.commit(); 放到循环中
        for(int i=0;i <list.size();i++)
        {
          GradeActFrm grade=(GradeActFrm) list.get(0);
          grade.setTag(0);
          session.update(grade);
          tx.commit();
        }      试试
      

  2.   

    方进去后
    出现异常
    Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100)
    at test.test.main(test.java:39)
      

  3.   

      for(int i=0;i <list.size();i++)
        {
          Transaction tx=session.beginTransaction(); 
          GradeActFrm grade=(GradeActFrm) list.get(0);
          grade.setTag(0);
          session.update(grade);
          tx.commit();
        }      
    这个也要加进去。。
      

  4.   

     for(int i=0;i<list.size();i++)
        {
         Transaction tx=session.beginTransaction();
         GradeActFrm grade=(GradeActFrm) list.get(0);
         grade.setTag(0);
         session.update(grade);
         tx.commit();
        
        }     
    我改成这样了
    还是老样子
    下面是hbm.xml配置
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    <class name="model.GradeActFrm" table="GradeInfo" mutable="true" polymorphism="implicit" dynamic-update="false" dynamic-insert="false" select-before-update="false" optimistic-lock="version">
    <id name="studentId" column="StudentId" type="java.lang.String" unsaved-value="null">
    </id><property name="courseId" column="CourseId" type="int" unique="false" optimistic-lock="true" lazy="false" generated="never" />   
    <property name="studentName" column="StudentName" type="java.lang.String" unique="false" optimistic-lock="true" lazy="false" generated="never" />   
    <property name="daokecishu" column="Daokecishu" type="int" unique="false" optimistic-lock="true" lazy="false" generated="never" /> 
    <property name="dianmingcishu" column="Dianmingcishu" type="int" unique="false" optimistic-lock="true" lazy="false" generated="never" />  
    <property name="qimochengji" column="Qimochengji" type="float" unique="false" optimistic-lock="true" lazy="false" generated="never" />  
    <property name="zongchengji" column="Zongchengji" type="float" unique="false" optimistic-lock="true" lazy="false" generated="never" />  
    <property name="tag" column="Tag" type="int" unique="false" optimistic-lock="true" lazy="false" generated="never" /></class>
    </hibernate-mapping>
      

  5.   

    确实错在list.get(0)
    我觉的真是相当的无奈
    错的很丢人
    浪费大家时间了
    谢谢你们