当前位置: 首页 > 面试题库 >

在休眠本机查询中获取新创建的行ID

长孙永思
2023-03-14
问题内容

sess.createSQLQuery(“INSERT INTO ARCHIVE (folder) VALUES(:folder)”)
.setParameter(“folder”,path)
.executeUpdate();

我想要新创建对象的ID。我怎样才能做到这一点?


问题答案:

试试吧

Integer lastId = (Integer) session.createSQLQuery(“SELECT LAST_INSERT_ID()”) .uniqueResult();



 类似资料:
  • 问题内容: 我想按数据库中的条件计数记录数。 我尝试使用下一个查询 但是没有方法可以执行此操作并获得结果。 我知道,我可以使用 所以问题是,查询是否具有更高的性能?如果,那么如何执行查询呢? 问题答案: 您可以通过调用来执行第一个查询,例如。 如果要将计数分配给变量,则需要将其转换为适当的类型(它可以取决于DB,但很可能是Long)。第二个查询效率很低,因为Hibernate需要从数据库中检索整个

  • 问题内容: 我想知道什么是从hibernate查询中获取地图数组的最佳方法。Google表示要迭代query.list(),然后将对象创建/放入空地图数组。 我想会有一些优雅而有效的方法来做到这一点。有人可以给我个主意吗? 问题答案: 参见Hibernate文档-15.6。select子句: 您可以使用以下方式为选定的表达式分配别名: 与选择新地图一起使用时,这非常有用: 该查询返回一个从别名到所

  • 问题内容: 尝试使用本机SQL更新数据时出现此错误。这是我的脚本: 是包含多个这样的字符串: 当我更新(使用)时,会引发以下错误: 请求处理失败;嵌套的异常是org.hibernate.exception.DataException:无法执行本机批量操作查询],根本原因是com.mysql.jdbc.MysqlDataTruncation:数据截断:截断了错误的DOUBLE值:‘222,226,2

  • 问题内容: 我正在将JPA持久性提供程序从EclipseLink 2.3切换到Hibernate 3.6.5.Final。问题出在本机查询上。注意:这不是EclipseLink的问题。我试图从我没有为其声明实体的表中获取一个标量值。这是代码: 使用Hibernate会得到一个,因为返回的对象实际上是一个代理对象。我不知道它是什么类型,但是我知道它不是数组(是false),我也不是列表(is )。

  • 问题内容: 我有以下HQL: 是否可以在HQL中更新多于一列的数据?例如: 我知道如何在MSSQL中做到这一点,但我不知道如何在Hibernate中做到这一点。 问题答案: 在这种情况下,HQL与SQL相同。只需使用逗号分隔各列:

  • 问题内容: 我在使用Hibernate创建子查询时遇到问题。不幸的是Subqueries类几乎完全没有文档,因此我完全不知道如何将以下SQL转换为Hibernate Criteria: 我希望以下内容能够“正常工作”: 但不幸的是,事实并非如此。因此,看来我实际上必须使用Subqueries类来创建Criteria。但是我无法通过Google找到一个合理的例子,因此这使我在这里提出了疑问。 问题答