[Resolvido] Hibernate não atualiza ID em @OneToMany (Hibernate 4)

Olá pessoal,

Após salvar utilizando o método saveRegFlp, o ID da tabela Chamado_Mensagem é retornado como null. Eu verifiquei no log e o Hibernate vai ate o banco e recupera o ID, o registro é persistido corretamente na tabela do bd, porém, o objeto dentro da collection continua com o ID null.

Alguem sabe o que pode estar ocorrendo?

Obs: O problema ocorre apenas no Hibernate4 no 3 funciona normalmente.

	public void saveRegFlp(ActionEvent event) {
		try {
		dao = new ChamadoDao<Chamado>(HibernateUtil.getSession(), Chamado.class);
			if (mensagem.getUsuario() == null) {
				mensagem.setChamado(chamado);
				mensagem.setUsuario(LoginMB.getUsuarioLogado());
				chamado.getMensagens().add(mensagem);
				dao.merge(chamado);
			} else {
				chamado.getMensagens().add(mensagem);				
				dao.update(chamado);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


	public List<Chamado> getChamadosAbertos() {
		List<Chamado> list = new ArrayList<Chamado>();

		try {
		       dao = new ChamadoDao<Chamado>(HibernateUtil.getSession(), Chamado.class);
			list = dao.getChamadosAbertos();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}


@Entity
@SequenceGenerator(name="seq_chamado",sequenceName="seq_chamado",allocationSize=1)
public class Chamado implements Serializable {
	
	@OneToMany(mappedBy = "chamado",fetch = FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	@OrderBy("id desc")
	private Collection<Chamado_Mensagem> mensagens;
        
       ...
}
@Entity
@SequenceGenerator(name="seq_chamado_mensagem",sequenceName="seq_chamado_mensagem",allocationSize=1)
public class Chamado_Mensagem implements Serializable{
	@ManyToOne
	@JoinColumn(name="chamado_id")
	private Chamado chamado;
		
	@Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seq_chamado_mensagem")
	private Integer id;

        ....
}

Execute o método “flush”…

http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#flush()

Já executo dentro do metodo merge do meu dao.

session.merge(t);
session.flush();

Mais alguma sugestão?

Descobri o problema.

Estamos migrando o sistema para jsf2 e hiberante4, durante a migração foi criado um novo pacote/classe para o hibernateUtil, porém, o antigo não foi deletado. Com isso, o HibernateSessionfilter apontava para um HibernateUtil e os DAOs apontavam para outro.