Pessoal, eu faço uma alteração no banco da seguinte forma:
                minhaQuery = minhaEntityManager.createNamedQuery("Objeto.findByCodigo");
                minhaQuery.setParameter("codigo", codigo);
                Objeto objeto = (Objeto) minhaQuery.getSingleResult();
                minhaEntityManager.getTransaction().begin();
                objeto.setQuantidade(quantidadeNova);
                minhaEntityManager.getTransaction().commit();
Quando eu debugo a aplicação, logo após o commit eu vejo que o banco foi alterado.
Logo após eu faço uma consulta:
        consultaQuery = minhaEntityManager.createNativeQuery("SELECT * FROM objeto WHERE codigo = " + codigo, Objeto.class);
        consultaList.clear();
        consultaList.addAll(consultaQuery.getResultList());
Mas o registro é retornado com o valor antigo, mesmo tendo sido alterado no banco.
Eu não uso cache na aplicação, tenho a seguinte configuração no persistense.xml:
    <shared-cache-mode>NONE</shared-cache-mode>
Minha lista também tem aquele parametro observable marcado.
Eu percebi que se eu chamar o método clear no EntityManager depois do
commit, as alterações são refletidas mas em outros pontos da aplicação
não precisei fazer isso. Uma observação é que estes dados estão sendo
consultados numa view, mas acho que isso não interfere em nada.