hibernate程序第二次执行为什么会把第一次执行时插入数据库的数据覆盖掉?

解决方案 »

  1.   

    你说的太简单了,肯定是hibernate用错了。
    hibernate是通过对象表示符来区分对象的。
    比如配置文件中:
    <id name ="id" type="long" column="ID">
        <generator class="increment"/>
    </id>
    以递增的方式来生成主键。
      

  2.   

    <id name ="id" type="long" column="ID">
        <generator class="native"/>
    </id> 
    我的配置文件是这样写的,数据库是mysql,所以才会这样是吧?
      

  3.   

    你的<property name="hbm2ddl.auto">create</property>是这样写的不,是的话把create改成none
      

  4.   

    请问<property name="hbm2ddl.auto">create </property>这个配置的作用是?
      

  5.   

    <property name="hbm2ddl.auto">create </property>中create属性会让hibernate把原先的表删除后,再重新建表插数据,所以程序第二次执行会把第一次执行时插入数据库的数据覆盖掉。none则在原先表的基础上插入数据
      

  6.   

    真的是这里配置没弄好,呵呵,我是hibernate初学者,大家见笑了。但是还不是很明白这条配置的作用,请高手明示
      

  7.   

    <property name="hbm2ddl.auto">create </property>中create属性会让hibernate把原先的表删除后,再重新建表插数据,所以程序第二次执行会把第一次执行时插入数据库的数据覆盖掉。none则在原先表的基础上插入数据。
    我也只知道这么点,希望高手赐教
      

  8.   

    session 没提交的话 会被修改!