최대 절전 모드로 읽는 엔티티를 삭제하는 중 문제가 발생했습니다. 변경없이 개체를 삭제 즉시 데이터베이스에서로드 엔티티와 같은 간단한 호출이 예외로 실패했다Hibernate/mysql - 일괄 업데이트가 예기치 않은 행 수와 ascii 문자를 반환했습니다.
org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException : 일괄 업데이트는 업데이트 [0]에서 예기치 않은 행의 수를 반환; 실제 행 수 : 0; 예상 : 1; 중첩 예외는 org.hibernate.StaleStateException : 배치 업데이트가 update [0]의 예기치 않은 행 수를 반환했습니다. 실제 행 수 : 0; 예상 : 1
나는 마지막으로 잘못된 다음 ASCII 문자를 가지고 문자열로 오류를 추적 - 239 (은 0xEF), 191 (하여 0xbf) 및 189 (0xbd). 이러한 문자를 제거하면 모든 것이 올바르게 작동합니다. hibernate delete 호출은 삭제하는 동안 where 절의 모든 필드와 일치하기 때문에 문자열에이 문자가 있으면 호출이 실패했다.
hibernate에 의해 반환 된 엔티티/컬럼이 조건의 where 절의 일부로 사용될 수 없거나 번역에서 어떤 것이 손실되기 때문에 어딘가에 우리의 설치에서 문자 인코딩에 문제가있는 것처럼 보입니다. MySQL의 설치 또는 이러한 문제는 내가 'UTF-8'` 각 MySQL의 세션의 시작 부분에 SET 문자 집합을 호출하는 데 사용되는 기억의 미래