Looking better (and checking Hibernate code) seems a problem during query.list() (in stacktrace Query successfull is missing) and automatic flush running before query execution. Try change flushMode to COMMIT or do a session.flush() before query.
Do you look at spring-batch for this kind of job?