Hi as far as I know the em.refresh(Entity) method is to refresh an existing Entity. I use it to load lazy data of entities stored in the session. I store the User-Entity in the session and to get the roles of the user i have to call:
If you delete an Entity, you should call the em.find() method (I'm not quite shure, if it is the best way)
I'm also intrested in a best practice.
This kind of discussion should be moved to the Hibernate or JBoss EJB3 forums, its not Seam specific.