EclipseLink - Atualizar

Eu tenho duas tabela no meu banco de dados uma chamada pai e outra chamada filho, cadastro os dois normalmente e verifico no banco que ambos estão persistidos, mas sempre que altero o nome do pai e abro a tela do filho o nome do pai não foi alterado, a não ser que eu feche e abra minha aplicação novamente… O que acho confuso é que no banco essa alteração foi feita… acredito que isso seja alguma coisa relacionada ao EclipseLink alguém sabe o que posso fazer?

Métodos que pegam a lista de Pai e de Filhos
Dao.getListaPai();
Dao.getListaFilho();

Detalhe desses métodos:
public static List getListaFilho() {
List lista = new ArrayList<>();
try {
EntityManager em = Dao.getFactory().createEntityManager();
String comando = “SELECT f FROM Filho f”;
TypedQuery query = em.createQuery(comando, Filho.class);
lista = query.getResultList();
em.close();
} catch (Exception ex) {
Alerta.mostra(ex.getMessage());
}
return lista;
}

Edit***
Uma curiosidade é que se eu duplicar o select da maneira abaixo ele atualiza normalmente, o que tem de errado com meu código?

public static List getListaFilho() {
List lista = new ArrayList<>();
try {
EntityManager em = Dao.getFactory().createEntityManager();
String comando = “SELECT f FROM Filho f”;
TypedQuery query = em.createQuery(comando, Filho.class);
lista = query.getResultList();
em.close();
EntityManager em = Dao.getFactory().createEntityManager();
String comando = “SELECT f FROM Filho f”;
TypedQuery query = em.createQuery(comando, Filho.class);
lista = query.getResultList();
em.close();
} catch (Exception ex) {
Alerta.mostra(ex.getMessage());
}
return lista;
}

Não sei se foi a melhor solução e nem sei como acontece, mas sempre que eu entro no programa eu seleciono um pai e eu usava uma variável estática na tela principal da minha aplicação para armazenar esse objeto:

public static Pai paiGeral;
System.out.println(paiGeral.getNome());
// Imprime “joão”

Entrava no cadastro desse Pai e alterava o nome dele para “josé”

Ao entrar no cadastro de filhos e usar:

Filho filho = Dao.getFilho(5); //Esse método faz um "SELECT f FROM Filho f WHERE f.filhoId = :filhoId" System.out.println(filho.getPai().getNome) //Imprime "joão";

E deveria imprimir “josé”!!

Eu resolvi trocando:

public static Pai paiGeral;

por:

public static int paiGeralId;

E sempre que eu precisar desse objeto eu faço um novo select:

Dao.getPai(paiGeralId);

Agora quando dou o comando dá certo:

Filho filho = Dao.getFilho(5); //Esse método faz um "SELECT f FROM Filho f WHERE f.filhoId = :filhoId" System.out.println(filho.getPai().getNome) //Imprime "josé";

Eu até entendo que o objeto paiGeral não seja atualizado ao fazer um select dos filhos, mas filho.getPai() deveria trazer a informação atualizada já que o select foi feito depois da alteração no banco de dados, gostaria que alguém me explicasse porque isso acontece e se fiz algo errado…