JPA用法中字段起名规范

前两天在学习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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值