如何在休眠状态下根据 id 更新行

Sun*_*nny 3 java hibernate oracle11g

我是休眠的新手。我正在使用 SessionFactory 来获取事务的会话,我在搜索后发现的一种方法用于使用 set 参数设置几个字段,即

Query query = getCurrentSession().createSQLQuery(
    "UPDATE table_name set field1=:f1 where ID=:id");

query.setParameter("f1", f1);
query.setParameter("id", id);
Run Code Online (Sandbox Code Playgroud)

但我想更新整行。我已经在实体类中设置了值,但是有没有办法根据 id 将整个实体类的值传递给数据库,id 是我要更新的表的主键。

小智 5

您已经拥有休眠实体对象中的所有数据?然后直接调用会话:

getCurrentSession().save(myEntity);
Run Code Online (Sandbox Code Playgroud)

创建一个新对象,或

getCurrentSession().update(myEntity);
Run Code Online (Sandbox Code Playgroud)

更新现有行。

如果不确定,您可以使用:

getCurrentSession().saveOrUpdate(myEntity);
Run Code Online (Sandbox Code Playgroud)