Neither use_query_cache nor use_second_level_cache can disable the first level cache. The first level cache always is on.
If you really do not want to use the first level cache, then you have to use StatelessSession instead of Session. But StatelessSession has less functionality and some of the methods you need might be missing.
If you only want to remove a few objects from the first level cache, you can use Session.evict().
Nevertheless I wonder why Hibernate presents the old value to you. This should not happen if each database entity only has one instance in the session (i. e. the instance of the object which you update is the same instance as shown in the list). If you use two different instances, then it is normal Hibernate presents the old value (and if you use two Session instances, one for the list and one for the update, then also you get the old value in the list). So perhaps you don't have to evict the object when you fix your application.
EDIT after your update:
In your short codelet I can't see why you get errors if you as a single user use the application.
But generally: You use JSF, so it is probably a web project which can be used by many users.
The Hibernate Session object is not thread-save, i. e. it probably won't work if different users use it at the same time. Each user needs its own session object. So you can store the Hibernate session instance in the Http session instance (and even then sometimes you must use 'synchronized' methods (or objects) just for the case the user presses a second time on a button before the answer from the first request arrived).
2nd EDIT: I think you have the same problem as in this question.
Probably you copied your code from anywhere like the DAO of the cited question. I guess your HibernateUtil class, whose code you copied from anywhere, stores the hibernate session in a ThreadLocal object, i. e. one hibernate session is bound to one thread.
But you're doing a web project. There you should bind one Hibernate session to one user (or browser), i. e. to one Http session. But you do not know in which thread the request from one http session is processed. Thus in your solution the same Http session may get different Hibernate sessions or perhaps different Http sessions may get the same Hibernate session. This depends to your Http server.
Solution: Put the Hibernate session into the Http session (and do not use the ThreadLocal object). You get the Http session object with HttpServletRequest.getSession()
and with HttpSession.getAttribute()
/HttpSession.setAttribute()
you can set the Hibernate session and other Http session related data.