我将Hibernate
中的字段更新为Oracle数据库,但它没有。为什么Hibernate
没有更新字段Leido
?
if (mensajeId.getLeido().equals("false")) {
Transaction tx = Main.getSesion().beginTransaction();
mensajeId.setLeido("true");
Mensaje mensaje = listaMensajesRecibidos.getSelectedValue();
mensaje.setId(mensajeId);
mensaje.setUsuarioByEmisor(mensaje.getUsuarioByEmisor());
mensaje.setUsuarioByReceptor(mensaje.getUsuarioByReceptor());
Main.getSesion().update(mensaje);
tx.commit();
}
答案 0 :(得分:0)
您似乎尝试将update()
方法用于非托管实例。在这种情况下,您应该使用saveOrUPdate()
或save()
。
但是,如果您认为此实体已在您的数据库中,但实例未连接到您的会话,则应使用merge()
。
答案 1 :(得分:0)
答案是,如果您的表没有主键,Hibernate会为您创建一个包含多个字段的表ID,并且无法修改。您必须在表中创建字段主键