spring JPA中使用过程中遇到的坑-帮你提前避坑

📢 📢 📢 📣 📣 📣
哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步 🤝 🤝
一位上进心十足的【Java ToB端大厂领域博主】! 😜 😜 😜
喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决 😜 😜 😜
✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我
❤️ ❤️ ❤️感谢各位大可爱小可爱! ❤️ ❤️ ❤️
————————————————
如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

新的项目使用的是JPA,之前对jpa只是有了解,并不深入所以在使用的过程中难免会遇到一些大坑,今天和以后我要好好维护一下这个文章,把遇到的坑都记录一下📝,帮大家少走弯路。

Column写在属性和写在get方法上面的区别

具体文章见下问

http://t.csdn.cn/BWABr

java.sql.SQLException: Column ' XXX ' not found.

导致原因1:在查询过程中由于select的字段中的查询字段值比实体中的字段少,导致报错

在查询过程中由于select的字段中的查询字段值比实体中的字段少,导致报错

如果实体类不只是road_gate_id, yard_id这2个字段是会报找不到某个字段的。

解决方法

这里用Map接收就可以了。

原因是select后跟的字段与Bean的属性个数不一致原因。

这里提一下非最终解决方法:

select后面去掉字段换成*即可。

如果想要根本解决问题这里也提一下:

建立repository层组件,内容为自定义@Query sql语句,这时select可以后跟查询的字段;

建立bean组件,一定要与数据表映射;

导致原因2:sql中起了别名

java.sql.SQLException: Column ‘列名’ not found:

这句话的意思是:找不到此列

为什么会出现这个问题?

原因:我们在执行SQL语句查询的时候为列名起了 别名所导致的

数据库字段带下划线:el_empno

在@Query中我们这样 :( value = “select el_empno as empno …”)

OK,异常来了:java.sql.SQLException: Column ‘列名’ not found

再使用spring boot 时,在…Repository中使用类似语句时:

@Query(value = “SELECT 列名1,列名2,…列名n FROM 表名称”, nativeQuery= true)

如果你是这样:@Query(value = “SELECT 列名1 AS 别名1,列名2 AS 别名2,…列名n AS 别名N FROM 表名称”, nativeQuery= true)

就会报错:java.sql.SQLException: Column ‘列名’ not found

当我们使用SQL语句时,表中的所有字段全写出来,如果多就用*,不多的话就一个一个写出来,记得不要加别名,

如果不全部写出来的话就会报:java.sql.SQLException: Column ‘列名’ not found

-----------------------------------

Spring data jpa hibernate:查询异常java.sql.SQLException: Column '列名' not found

今天就记录这几个问题,后续会继续维护这个文章

如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智达教育‍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值