2013-07-23 3 views
0

생산자 고객 모델에 active-mq과 함께 백엔드 Java 코드를 작성했습니다. 여러 소비자가 테이블 질문에서 업데이트를 사용하여 실행되면 다음 예외가 발생하고 트랜잭션이 롤백됩니다. 각 소비자 작업 내에서 여러 스레드가 실행 중입니다.org.hibernate.util.JDBCExceptionReporter] 키 'PRIMARY'의 중복 항목 X

WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 1062, SQLState: 23000 

07:10:31,609 ERROR [org.hibernate.util.JDBCExceptionReporter] Duplicate entry '69-947' for key 'PRIMARY' 

07:10:31,615 ERROR [com.xminds.bestfriend.consumers.QuestionGeneration] Exception failed the Question generation 

org.springframework.dao.DataIntegrityViolationException: could not insert: [com.xminds.bestfriend.frontend.model.Friendship]; 

어느 하나가 해결책을 제안 할 수 있습니다.

+2

'중복 키'PRIMARY '에 '69 -947'항목이 있습니다. 두 스레드가 동일한 'PK'키를 사용하여 레코드를 삽입하려고합니다. ! 'PK'를 어떻게 생성합니까? – NINCOMPOOP

+0

우리의 응용 프로그램에 대한 페이 스북 (Facebook)에서 스트림 데이터를 가져오고 있으며 post_id 테이블이 기본 키로 사용됩니다. – Vishnupriya

+0

누가 'PK'를 생성했는지 알고 싶습니까? 자동으로 생성 되었습니까 아니면'PK '를 제공합니까? – NINCOMPOOP

답변

0

기존 기본 키를 사용하여 레코드를 삽입하려고합니다. 기본 키가 고유한지 확인하십시오.

0

데이터베이스에 제약 조건이 있습니다. 테이블의 기본 키가 중복되어 테이블에 자동 생성 ID를 사용해야합니다

+0

내 응용 프로그램의 facebook 스트림 데이터가 hbm.xml의 테이블에 저장되어 있기 때문에 Facebook의 post_id가 기본 키로 사용됩니다. Vishnupriya

+0