关于hibernate用save方法保存对象所遇到的一个问题

  执行数据库循环保存操作时,开始想只new一个对象,这样会节省一些空间,所以在for循环外面执行new操作,在for循环里面则执行设值操作,然后每次都提交事务到数据库。如下图:

技术分享

结果发现数据库里只插入了一条数据,查看sql语句才发现问题的所在,sql语句如下:

技术分享

hibernate只执行了一次insert操作,剩下的都是更新操作,所以最后表里面只有一条数据。

然后我就进行了修改,在每一次for循环里都new一个对象,如下图:

技术分享

执行插入操作后查看sql语句,发现这次就插入成功了,执行了5次的insert操作,

技术分享

所以,根据以上可知道,hibernate在for循环里面执行save()方法时每次都必须new一个新对象,这样才能正确的插入数据。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。