为什么hibernate没有更新字段?

时间:2014-06-09 11:03:07

标签: java oracle hibernate field

我将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();
    }

2 个答案:

答案 0 :(得分:0)

您似乎尝试将update()方法用于非托管实例。在这种情况下,您应该使用saveOrUPdate()save()

但是,如果您认为此实体已在您的数据库中,但实例未连接到您的会话,则应使用merge()

答案 1 :(得分:0)

答案是,如果您的表没有主键,Hibernate会为您创建一个包含多个字段的表ID,并且无法修改。您必须在表中创建字段主键

相关问题