博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPA用法中字段起名规范
阅读量:4580 次
发布时间:2019-06-09

本文共 1181 字,大约阅读时间需要 3 分钟。

前两天在学习Springboot使用JPA 来操作数据库时,碰到一个问题,最终发现了JPA写法中表字段名称要写规范。

记录下来提醒自己。

 

CityEntity是一个City的实体类。

1 @Table(name = "city") 2 public class CityEntity { 3  4     @Id 5     @GeneratedValue 6     private Long id; 7  8     @Column(name="name",columnDefinition = "char(35) ") 9     private String name;10 11     @Column(name="countryCode",columnDefinition = "char(3) ")12     private String countryCode;13 14     @Column(name="district",columnDefinition = "char(20) ")15     private String district;16 17     @Column(name="population",columnDefinition = "int(11) ")18     private Long population;19 20 }

通过CityRepository.findall() 来查询时,一直报错,报错说没有country_code字段,而实体类里面明明写的映射字段是countryCode ,但是JPA产生的SQL语句如下:

SELECT	cityentity0_.id AS id1_0_,	cityentity0_.country_code AS country_2_0_,	cityentity0_.district AS district3_0_,	cityentity0_. NAME AS name4_0_,	cityentity0_.population AS populati5_0_FROM	city cityentity0_

  

最终原因是CityEntity里面

@Column(name="countryCode",columnDefinition = "char(3) ") 这段注解有问题,而问题就出在name="countryCode",这样JPA会在产生SQL语句的时候自动解析成 country_code

解决方法就是写成这样:  @Column(name="countrycode",columnDefinition = "char(3) "),出来正确的SQL

转载于:https://www.cnblogs.com/jedi2015/p/8492066.html

你可能感兴趣的文章
子节点填充父元素除去一固定高度后的剩余高度
查看>>
[原]IOS 后台发送邮件
查看>>
(转)JAVA Calendar详解
查看>>
转: 编码,charset,乱码,unicode,utf-8与net简单释义
查看>>
C#--正则匹配
查看>>
5.30 考试修改+总结
查看>>
BA-设计施工调试流程
查看>>
C#-CLR各版本特点
查看>>
css3背景透明文字不透明
查看>>
《java JDK7 学习笔记》之接口与多态
查看>>
LeetCode 96:Unique Binary Search Trees
查看>>
kernel-char设备的建立
查看>>
DVWA-CSRF
查看>>
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>