Can't you just use the entity manager to persist the datamodel changes and then flush it.
@PersistenceContext(type = EXTENDED) private EntityManager em; em.persist(dataModel); em.flush();
Sorry to be unclear in the original post.
It is not about the datamodel field being refreshed in the stateful bean (which it is), it is about whether Seam see's fit to outject into the datamodel again to the http context or whether it doesn't bother because it thinks there is no change so it may as well leave the old one there.
The way it tells whether it should bother re 'outjecting' the variable is checking whether the http contect variable is 'equal' to the datamodel variable in the stateful session bean.
Hope this makes more sense.
Right, I put a lot of effort into getting this functionality just right. equals() is the only really safe way.