SpringBoot中jpa批量插入的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxkalychen/article/details/78670183

说起来令人啼笑皆非。本来也是我对SpringBoot不太熟,现在处于学习的阶段。公司最近做一个项目,我用SpringBoot架构好了,中间遇到两个问题:

一是软件内启动老是提示注解工厂的错误,网上查了一下,原来是因为 @Table注解的问题,把关于表名映射改到@Entity里面就好了,因为orm的类都是持久化插件生成好的,我以为应该不会有这方面的问题,加之表太多,而且数据库又总是不确定。我不愿老做无用功,所以没去改。后来自己写了一个小demo,连上数据库表,同样的问题,改过来真的就解决了;

二就是批量插入时老是报session处理不同对象的问题,一直不明白为什么。还是在这个demo里,做了几种尝试,由于hibernate是被层层封装得比较严实,问题也不好查。我曾经尝试过用Jdbc来替代jpa,结果成功了。因为jdbc不存在session的问题。但是我也很想指导问题出在哪里。想自己处理session,但是封装了自己不知道怎么能够取出来。

今天在尝试过程中,想到在hibernate中,保存和更新是由id来判断的,会不会处理的时候id一样了,所以才会出错。但是数据库表中我命名是设置了自动增长的嘛。不过持久化插件做orm映射的时候没有加相关注解。我还以为@Id这个问题能够解决呢。很随意地把@GeneratedValue(strategy = GenerationType.AUTO)这个注解加到id字段上面,我晕了,竟然解决了。说到底,我还是太相信ide的那些插件了,看来很多时候还是得一是一二是二,不能偷懒,不能轻信开发环境。

记一笔,警示自己!

猜你喜欢

转载自blog.csdn.net/xxkalychen/article/details/78670183