使用hibernate的saveOrUpdate方法,数据库没有相同主键时插入的时候没有问题,但是有相同主键应该调用update的时候却出现
ORA-00001: unique constraint (CSGL.SYS_C0075080) violated异常,hibernate配置    <class name="com.git.eteller.dbaccess.Pdprdinfo" table="PDPRDINFO" schema="CSGL">
        <id name="prdCode" type="java.lang.String">
            <column name="PRD_CODE" length="7" />
            <generator class="assigned" />
        </id>
        <property name="prdName" type="java.lang.String">
            <column name="PRD_NAME" length="40" not-null="true" />
        </property>

解决方案 »

  1.   

    saveOrUpdate不是楼主理解的简单的对一个对象自动选择是保存还是更新到数据库。
    要保存和更新到数据库不是使用这个方法,而多使用类似如下:
    class DAOImpl extends HibernateDaoSupport{
             public void saveEntity(Entity entity) {
    this.getHibernateTemplate().save(entity);
    }
             public void updateEntity(Entity entity) {
    this.getHibernateTemplate().update(entity);
    }
    }
    这帖子有关于saveOrUpdate的用法,楼主可以看下。http://www.iteye.com/topic/2632