Hibernate em Sistemas Desktop

Seguindo o estilo de codificação atual sim, mas isso não tem muito jeito mesmo. Para resolver, você teria que abrir a Session no começo do seu Listener no Swing e fechar antes de retornar dele. Outra solução é forçar a inicialização da UF através do Hibernate.initialize(proxy) ou ainda fazer com que o relacionamento seja eager.

Veja, isso não é um problema novo: na verdade, o uso errado da Session como você vinha fazendo antes é que escondia esse comportamento por gerar, como conseqüência, um cache infinito das coisas.

Verdade…

Mister… pelo que vejo és um usuário do genesis… Tu não terias como me enviar alguns arquivos de configuração simples do genesis e/ou algum pedaço de código pra eu estudar e adaptar? Ou então alguma referência para estudo… Assim mato de vez meu problema… Valeu mesmo.

Verifique a documentação sobre a integração com o Hibernate bem como as duas seções anteriores (que você pode acessar pelo menu de navegação à esquerda).

Tive o mesmo problema. Resolvi limpando a sessão depois de qualquer alteração e antes de qualquer consulta:

public static void clearSession() {
	Session session = (Session) entityManager.getDelegate();
	session.clear();
}
public void incluir(Usuario usuario) throws DAOException {
	try{
		entityManager.getTransaction().begin();
		entityManager.persist(usuario);
		entityManager.getTransaction().commit();
			
		OracleConnection.clearSession();
	}catch (Exception e) {
		throw new DAOException(e);
	}
}