반응형
🚨 Spring 실행시 발생한 에러 메시지
org.springframework.dao.DuplicateKeyException:
java.sql.SQLIntegrityConstraintViolationException: Duplicate entry '500' for key 'role.PRIMARY'
❓ 에러 발생 이유
DB의 기본키 관련 무결성 제약 조건에 위배되는 SQL문이 작성되어 발생하는 에러 메시지입니다.
✅ 해결 방법
DB의 기본키 관련 무결성 제약조건이 있는 소스 코드를 찾아 수정하면 됩니다.
아래 설명문과 이미지를 참고해 주세요.
DB 조회
select * from role;
테이블을 조회해 본 결과 기본 키 500을 가지고 있는 데이터가 이미 존재했던걸 확인할 수 있었습니다.
참고: DB에서 ID 500인 데이터를 삭제하여도 됩니다.
수정 전 소스 코드
package kr.or.connect.daoexam.main;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import kr.or.connect.daoexam.config.ApplicationConfig;
import kr.or.connect.daoexam.dao.RoleDao;
import kr.or.connect.daoexam.dto.Role;
public class JDBCTest {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(ApplicationConfig.class);
RoleDao roleDao = ac.getBean(RoleDao.class);
// 기존 DB에 ID가 500인 Role 데이터가 존재하므로 해당 소스 코드를 수정
// Role role = new Role();
// role.setroleId(500);
// role.setDescription("CTO");
Role role = new Role();
role.setroleId(501);
role.setDescription("CEO");
int count = roleDao.insert(role);
System.out.println(count + "건 입력되었습니다.");
}
}
🌟 정상 실행 결과
Spring이 정상적으로 실행되며, DB에 데이터가 추가된 걸 확인할 수 있었습니다.
반응형
댓글