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;
....
}