The problem then was that userNickname was null sometimes even when user was being set. After some trial and error I found this post Google Groups where they mention the fact that @OnLoad only gets called when the Entity is not found in the session.
My solution: call onLoad directly when setting the reference. That makes that instance to be usable right away. But at the same it will be loaded when needed.