我在想数据库中保存对象时,遇到了这样的问题:
    null id in com.weihui.auction.model.Item entry (don't flush the Session after an exception occurs)
    org.hibernate.AssertionFailure:     
    null id in com.weihui.auction.model.Item entry (don't flush the Session after an exception occurs) 
    at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId  (DefaultFlushEntityEventListener.java:82) 
    at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190) 
    at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
    
    我的ID字段设置的是自增长:
    <id name="itemId" column="itemid" type="integer">
        <generator class="identity"/>
    </id>,我不明白为什么会出这样的问题。
   我怀疑和Hibernate的事物有关系,我在程序里使用Spring来管理Hibernate,DAO都继承了HibernateDaoSupport类,那按理说事物是有HibernateTemplate类来控制了。怎么会出这样的问题呢?请大家帮帮忙!
    

解决方案 »

  1.   

    你的数据库里面itemId设置自动增长了么?
      

  2.   

    <generator class="increment" />这个才是自增长的吧。异常是报 ID为空值。
      

  3.   

    <id name="itemId" column="itemid" type="java.lang.Integer">
        <column name="id" />
        <generator class="identity" />
    </id>
    查事务配置 可能事务没有提交 数据库itemId设置自动增长?
      

  4.   

    数据库了的ID字段设置的是auto_increment
      

  5.   

    identity这个好像要特定数据库才能使用,比如说sql server  ,你用的是哪个数据库啊