우리 웹 사이트에는 동일한 테이블에 대해 작동하는 두 개의 연산이 있습니다. 하나는 여러 행을 읽고 다른 하나는 행을 삭제합니다.DELETE 중에 StaleObjectStateException을 발생시키는 동시 읽기입니까?
우리는 Spring 3.1과 Hibernate 3.6을 사용하고있다.
정확한 작업은
EntityManager.createQuery().getResultList();
및
EntityManager.remove();
우리는하지 getResultList() 스레드에서, 제거() 스레드에서 StaleObjectStateException을 받고 있습니다. 문제는 왜 읽음이 StaleObjectException의 원인인가?
이렇게해서는 안됩니다. 엔티티를 검색 한 후에 엔티티를 수정하는 방법이 없다는 것이 확실합니까? 어쩌면 일종의 부작용이있을 수 있습니까? 읽기 작업을 별도로 실행 한 다음 @Version 주석이 달린 열이 변경되는지 확인해야합니다. – Pace