티스토리 뷰
SW개발/Hibernate
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
개소왕 2019. 3. 22. 14:50* 개요
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
* 상황 1 - getHibernateTemplate().delete(..) 실행중 발생
- 원인
DB 에 존재하지 않는 Entity 를 삭제 시도시 발생
- 참고
- 해결
먼저 get(..) 으로 특정 PK 로 찾아본 후
null 아닐때만 삭제하도록 로직 변경
* 상황 2 - saveOrUpdate() 중 발생
- 원인
존재하지 않는 Entity 에 위 메서드 실행하면 PK와 함께 생성되어야 함.
@GeneratedValue 가 설정되어 있다면, MySQL 의 경우 AUTO INCREMENT 가 지정되어 있어야 DB에서 PK를 자동으로 생성하는데
설정되어 있지 않으면 오류 발생함.
- 해결
AUTO INCREMENT 설정하거나
@GeneratedValue 를 제거하고 직접 PK 를 입력한 후 저장