2014-11-14 1 views
1

데이터베이스에서 일부 데이터를 가져와 결과를 기반으로 한 번 더 쿼리를 실행해야합니다.봄/최대 절전 : org.hibernate.StaleStateException : 일괄 업데이트가 예기치 않게 반환되었습니다.

는하지만 예외 아래에 무엇입니까 :

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

내 코드 :

Session tempSession1 = HibernateUtil.getSessionFactory().openSession(); 
       Session tempSession2 = HibernateUtil.getSessionFactory().openSession(); 
            Criteria criteriaApplication = tempSession1.createCriteria(Entity.class); 
       try { 

        List list = criteriaApplication.add(Restrictions.eq("app__id",Entity.sys_id()).ignoreCase()).list(); 
        tempSession1.flush(); 
        tempSession1.close(); 
        if (list.size() > 0) { 


          tempSession2.update(Entity); 
          tempSession2.flush(); 
          tempSession2.close(); 


        } 

이 도와주세요. 누군가 내 코드를 수정할 수 있습니까?

+0

수행하려는 작업을 명확하게 설명해 주시겠습니까? 'Entity '란 무엇이며 어디에 선언 되었습니까? 어떤 행에 예외가 발생합니까? – Petter

답변

0

이 * 업데이트 할 세션에있는 엔터티 인 경우이 예외가 최신이 아닌만큼, 당신의 잠금 설정에 따라

* 세션에서 엔티티 업데이트하려는 데이터베이스가 더 이상 데이터베이스에 존재하지 않습니다.

+0

엔터티가 다른 동시 트랜잭션에 의해 업데이트 된 경우이 오류가 발생할 수도 있습니다. – Petter

+0

AFAIK 낙천적 인 잠금 – kommradHomer

+0

흠 때문에 기본 설정에서 발생하지 않을 것입니다. 무슨 뜻인지 확실하지 않습니다. 이 예외는 낙관적 잠금을 사용하고 다른 동시 트랜잭션이 엔티티를 갱신 할 때 예상되는 것입니다. – Petter

관련 문제