qq_41917077
qq_41917077
2018-11-08 00:28
采纳率: 75%
浏览 9.0k
已采纳

spring data jpa如何自定义insert sql?批量保存数据

框架spring data jpa + hibernate
例如我想一个inset插入多条数据

 INSERT INTO tableName (column1,column) VALUES (value1,value2),(value3,value4),(value5,value6);

插入的条数是不固定的,
将整句sql作为参数,用spring data jpa 的@Query注解进行插入是无法解析出来sql的。
请问我还有什么办法能插入整句sql?
在spring data jpa框架中 save()方法确实可以插入n条数据的集合,但是底层原理依然是一个一个的保存,
并且前后会访问2n次数据库。所以这个方法不考虑。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • Burgess_Lee
    Burgess_Lee 2018-11-08 05:39
    已采纳

    如果不是用注解,采用原生SQL插入,不知道是不是能够解决你的疑问。还望采纳。

     query.executeUpdate();                                    //也可以执行原生的插入语句。
    Query query = em.createNativeQuery("insert into table(column1,column2) values (), (),()");
    query.executeUpdate();
    
    点赞 评论
  • qq_16127313
    爱码少年 2018-11-08 13:27

    mysql的话,需要在jdbcurl 配置allowMultiQueries=true
    然后可以一次传入包含多条sql的字符串执行
    INSERT INTO tableName (column1,column) VALUES (value1,value2);
    INSERT INTO tableName (column1,column) VALUES (value3,value4);

    然后一次执行。
    oracle的话,不用做特殊设置,不过sql写法有技巧,资料大把可查。

    回答完毕,希望帮到你!

    点赞 评论

相关推荐