解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()_oracle

今天做项目遇到了一个问题,是以前没注意的。我用的是Spring MVC+ Hibernate JPA + MySQL数据库。在插入数据后SQL执行日志中会多出一条select语句:

复制代码 代码如下:

Hibernate: insert into click_statstic (logDate, memoId, src, typeId) values (?, ?, ?, ?)
Hibernate: select last_insert_id()

表中有个主键是自增列。可是在以往的项目中,没发现有这样的问题。于是在网上各种找也找不到原因。心想可能是配置问题。

最终在persistence.xml配置文件中找到了这样一条配置:

复制代码 代码如下:

<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false" />

把这条配置删除就没有了多余的select语句。具体原因和这样做的目的是什么不得而知。如果有知道的朋友请分享下~多谢了。

时间: 2024-09-17 17:45:56

解决Hibernate JPA中insert插入数据后自动执行select last_insert_id()_oracle的相关文章

【提问】插入数据后,如何获得编号【在线放分】

问题描述 插入一条数据到SQLSERVER当中数据表中的第一项是自动编号那么我们在插入数据后,如何获得这个生成的自动编号? 解决方案 解决方案二:selecttop1idfromtableorderbyiddesc解决方案三:http://topic.csdn.net/u/20080710/11/d1468a96-a8e4-4b68-a151-cd38541d7c68.html解决方案四:自动编号只增补渐吗?数据条目很多后,编号会出现循环的情况的吗?解决方案五:自动编号只增补渐吗?是的数据条目很

Spring中如何实现插入数据后调用存储过程,且在同一事务里,如何证明。

问题描述 Spring中如何实现插入数据后调用存储过程,且在同一事务里,如何证明.Spring是如何管理事务的,我在插入后如何自动提交的. 解决方案 解决方案二:<propertyname="sqlMapClientTemplate"ref="sqlMapClientTemplate"></property>DAO中使用的这个对应的beanxml是<beanid="sqlMapClientTemplate"class

Excel表格中新插入行后如何在数据的最底部动态求和

Excel表格中新插入行后如何在数据的最底部动态求和   有一列数据,比如A2:A11是一些金额数据,在A12单元格对上面的数据进行求和,A12的函数公式是:=SUM(A2:A11). 但是若在第12行的上面插入若干行,然后在新插入的空白单元格输入数据,原先的函数公式=SUM(A2:A11)不会发生变化,所以无法对新输入的数据进行求和.请看下面的截图: 若想能动态汇总上面的数据,即使紧挨着求合计的单元格插入空白行,则推荐用下面的函数公式,在A12单元格输入如下: =SUM($A$2:INDIRE

angularjs-AngularJs中请求到数据后在controller中怎么取出数据供HTLM页面循环使用

问题描述 AngularJs中请求到数据后在controller中怎么取出数据供HTLM页面循环使用 我在AngularJs的service服务里,使用$http.post请求请求到数据后,在controller里注入服务,然后使用循环把data数据push到一个数组中,可是在谷歌浏览器的控制台中只能看到是个[]空数组,ng-repeat也没有循环出来内容,请问这个值我该怎么取得?代码如下:// $q 是内置服务,所以可以直接使用ngApp.service('UserInfo' ['$http'

C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据

#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// <param name="sourceDataTable">数据源表</param> /// <param name="targetTableName">服务器上目标表</param> /// <param nam

mysql-为什么数据库要插入数据后再建B-Tree等结构的索引,而不是边插边建?

问题描述 为什么数据库要插入数据后再建B-Tree等结构的索引,而不是边插边建? 直接插入到B-Tree里不行吗 还有个问题,本来是直接插入到什么数据结构里的? 解决方案 voltDB好像就是往BTree里插的 解决方案二: 应该就是边插边建,除非你用的是事务或者bulkcopy 解决方案三: 索引是要排序的,只有数据插入后的排序才比较稳定,否则,索引的作用体现不出来.

Flex中在Tree绑定数据后自动展开树节点的方法_Flex

用Flex/Flash做开发的同志们应该会使用 expandChildrenOf(item,true)方法来使用Tree组件在绑定数据后自动展开所有树型节点(不需要用户再自己点击展开节点,会方 便许多),而在Flex开发帮忙文档中很明确写道: "If you set dataProvider and then immediately call expandChildrenOf() you may not see the correct behavior. You should either wa

如何得到上一次插入记录后自动产生的ID

插入   如何得到上一次插入记录后自动产生的ID 作者:淘特网 出处:淘特网 注:转载请注明出处 如果你使用存储过程的话,将非常简单,代码如下:SET @NewID=@@IDENTITY 说明:在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值.若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL.若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值.如果此语句激发一个或多个执

sql server-sqlserver插入数据,报执行存储过程错误,求大神科普

问题描述 sqlserver插入数据,报执行存储过程错误,求大神科普 解决方案 你数据库的表时怎么创建的? 解决方案二: USE [lmweb] GO /****** Object: Table [dbo].[visitip] Script Date: 10/09/2015 21:32:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].visitip NOT NULL, [ffromref