java - 如何在 hibernate 中根据 id 更新行

标签 java hibernate oracle11g

我是 hibernate 新手。我正在使用 SessionFactory 来获取交易的 session ,我在搜索后发现的一种方法是使用设置参数设置几个字段,即

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

query.setParameter("f1", f1);
query.setParameter("id", id);

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

最佳答案

您已经拥有 Hibernate 实体对象中存在的所有数据吗?然后直接调用session即可:

getCurrentSession().save(myEntity);

创建一个新对象,或

getCurrentSession().update(myEntity);

更新现有行。

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

getCurrentSession().saveOrUpdate(myEntity);

关于java - 如何在 hibernate 中根据 id 更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36286036/

相关文章:

java - GUI 的布局建议?

java - 如何将 Android 代码导出到 Android Studio 中的 java 库

java - 如何在oracle java中获取驱动器容量

java - 从表中保存首选项值

java - 有没有办法将Java代码编译成DLL?

java - JPA:同一实体上的多对多关系

java - 如何摆脱已开发的具有 Oracle native 查询的应用程序的数据库依赖性?

java - 有没有一种方法可以链接 mysql 中已有的条目而不是创建新条目?

sql - 有没有办法舍入 Oracle 交叉表 PIVOT?

asp.net - 如何在只有 Oracle 12c 的机器上托管使用 Oracle 11g 的 ASP.NET 应用程序?