Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我试图调用saveorupdate()方法时,在hibernate中发生重复条目_Java_Spring_Hibernate - Fatal编程技术网

Java 当我试图调用saveorupdate()方法时,在hibernate中发生重复条目

Java 当我试图调用saveorupdate()方法时,在hibernate中发生重复条目,java,spring,hibernate,Java,Spring,Hibernate,我的应用程序包含几个并发运行的线程,所有线程都会插入或更新表中的几行,因此我使用saveOrUpdate()来避免重复条目问题。但这种情况发生了好几次 我的桌子结构 CREATE TABLE `question` (`id` varchar(100) CHARACTER SET latin1 NOT NULL COMMENT 'It will be the post_id in ) 我的哈佛商学院 <class name="com.xminds.bestfriend.frontend.m

我的应用程序包含几个并发运行的线程,所有线程都会插入或更新表中的几行,因此我使用saveOrUpdate()来避免重复条目问题。但这种情况发生了好几次

我的桌子结构

CREATE TABLE `question` (`id` varchar(100) CHARACTER SET latin1 NOT NULL COMMENT 'It will be the post_id in )
我的哈佛商学院

<class name="com.xminds.bestfriend.frontend.model.Question" table="question" >
    <id name="id" type="string">
        <column name="id" length="100" />
        <generator class="assigned" />
    </id>
    <many-to-one name="users" class="com.xminds.bestfriend.frontend.model.Users" fetch="select">
        <column name="answer_uid" />
    </many-to-one>
    <many-to-one name="questionType" class="com.xminds.bestfriend.frontend.model.QuestionType" fetch="select">

        <column name="question_type_id" />
    </many-to-one>
    <property name="data1" type="string">
        <column name="data1" length="65535" />
    </property>
    <property name="data2" type="string">
        <column name="data2" length="65535" />
    </property>
    <property name="fbCreatedDate" type="timestamp">
        <column name="fb_created_date" length="19" />
    </property>
    <property name="permaLink" type="string">
        <column name="perma_link" length="1000" />
    </property>
    <property name="fbUpdatedDate" type="timestamp">
        <column name="fb_updated_date" length="19" />
    </property>
    <property name="contentActivity" type="java.lang.Integer">
        <column name="content_activity" />
    </property>
    <property name="nbConsumptions" type="int">
        <column name="nb_consumptions" not-null="true" />
    </property>
    <property name="createdDate" type="date">
        <column name="created_date" length="10" />
    </property>
    <property name="updatedDate" type="date">
        <column name="updated_date" length="10" />
    </property>
    <property name="cover_url" type="string">
      <column name="cover_url" length="1000"/>
    </property>

    <property name="category" type="string">
      <column name="category" length="1000"/>
    </property>
    <property name="width" type="int">
        <column name="width" not-null="true" />
    </property>
    <property name="height" type="int">
        <column name="height" not-null="true" />
    </property>
    <property name="coverOffsetX" type="java.lang.Integer">
        <column name="cover_offset_x" />
    </property>
    <property name="coverOffsetY" type="java.lang.Integer">
        <column name="cover_offset_y" />
    </property>
    <property name="latitude" type="java.lang.Double">
        <column name="latitude" precision="12" scale="0" />
    </property>
    <property name="longitude" type="java.lang.Double">
        <column name="longitude" precision="12" scale="0" />
    </property>
    <property name="is_active" type="boolean">
        <column name="is_active" not-null="true" />
    </property>
    <set name="questionConsumptions" inverse="true">
        <key>
            <column name="question_id" length="100" not-null="true">
                <comment>QuestionId</comment>
            </column>
        </key>
        <one-to-many class="com.xminds.bestfriend.frontend.model.QuestionConsumption" />
    </set>
</class>
错误JDBCExceptionReporter-键“PRIMARY”的重复条目“1019306207_10200395396740374” 错误AbstractFlushingEventListener-无法将数据库状态与会话同步 org.hibernate.exception.ConstraintViolationException:无法插入:[com.xminds.bestfriend.frontend.model.Question] 位于org.hibernate.exception.sqlstatecoverter.convert(sqlstatecoverter.java:96) 位于org.hibernate.exception.jdbceptionhelper.convert(jdbceptionhelper.java:66) 位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2436) 位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2856) 位于org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79) 位于org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) 位于org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) 位于org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184) 位于org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) 位于org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) 位于org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) 位于org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) 位于org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) 位于org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656) 位于org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) 位于org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) 位于org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:147) 在com.xminds.bestfriend.consumers.Base.onMessage上(Base.java:89) 位于org.springframework.jms.listener.adapter.MessageListenerAdapter.onMessage(MessageListenerAdapter.java:339) 位于org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:535) 位于org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:495) 位于org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467) 位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:325) 位于org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:263) 位于org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1058) 位于org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1050) 位于org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) 运行(Thread.java:679) 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:键“PRIMARY”的重复条目“1019306207_10200395396740374” 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:532) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411) 位于com.mysql.jdbc.Util.getInstance(Util.java:386) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:3597) 在com.mysql.jdbc.MysqlIO.checkErrorPacket上(MysqlIO.java:3529) 在com.mysql.jdbc.MysqlIO.sendCommand上(MysqlIO.java:1990) 位于com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151) 位于com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625) 位于com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119) 位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415) 位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333) 位于com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318) 在com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105) 位于org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46) 位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2416) ... 25多 生成问题时出错-无法处理任务ID:208 org.springframework.dao.DataIntegrityViolationException:无法插入:[com.xminds.bestfriend.frontend.model.Question];SQL[在问题中插入(答案uid、问题类型id、数据1、数据2、创建日期、永久链接、更新日期、内容活动、nb消耗、创建日期、更新日期、覆盖url、类别、宽度、高度、覆盖偏移量x、覆盖偏移量y、纬度、经度、是否活动、id)值(、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、)];约束[null];嵌套异常为org.hibernate.exception.ConstraintViolationException:无法插入:[com.xmin]
WARN  JDBCExceptionReporter - SQL Error: 1062, SQLState: 23000
@Override
public void saveOrUpdate(Object instance)
{

    //log.debug("attaching dirty  instance");
    try
    {
        getHibernateTemplate().saveOrUpdate(instance);
        //log.debug("attach successful");
    }
    catch (RuntimeException re)
    {
       // log.error("attach failed", re);
        throw re;
    }

}