映射文件为:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping package="com.xkhl">
    <class name="Answer" table="answer">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="qid" type="java.lang.Integer">
            <column name="qid" />
        </property>
        <property name="key" type="java.lang.String">
            <column name="key" length="900" />
        </property>
        <property name="type" type="java.lang.String">
            <column name="type" length="45" />
        </property>
        <property name="count" type="java.lang.Integer">
            <column name="count" />
        </property>
    </class>
</hibernate-mapping>

解决方案 »

  1.   

        你直接把
        session.update(value);
        改成
        session.save(value);
        就可以了。
      

  2.   

    如果你要更新记录,就不是新建一个Answer value=new Answer();实例,必须先构造修改记录的实例,然后你就用update,就可以的,不然肯定了你update,数据库里面没有这条记录啊。。好好想想,修改记录是在已有记录的前提下修改的,你new Answer()也变向的说就是新的一条记录
      

  3.   

    value.setId(new Integer(1)); 
        value.setQid(new Integer(1));
        value.setKey("北京");
        value.setType("普通");
        value.setCount(new Integer(1));
    这条id=1的记录存在.
      

  4.   

    "tcmis(难道你忘了吗?)"说得有道理.
    "value.setId(new Integer(1)); 
        value.setQid(new Integer(1));
        value.setKey("北京");
        value.setType("普通");
        value.setCount(new Integer(1));
    这条id=1的记录存在.
    "我一看这一句话就知道你对hibernate的session的管理,还有基本的save,update,saveorupdate不熟悉.
    你更新一个数据,那么必须通过session得到一个数据先,可以根据ID或一些属性值得到先,保证这一个数据这一个session中,然后你才能修改更新.
      

  5.   

    在"j2ee精英交流群"的兄弟,好好努力啦.
      

  6.   

    我知道哪里错了: 是表中的字段名:key有问题,把他改成key1就可以了.key可能是Hibernate内部的关键字.
      

  7.   

    count也是关键字 不能用的
      

  8.   

    tcmis(难道你忘了吗?) 说的很对!!要更新,用HQL语句啊,用set干嘛!要不你就先load得到这个表类!