zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    《构建之法》第五章读后感
    《构建之法》第四章读后感
    《构建之法》第三章读后感
    《构建之法》第二章读后感
    《构建之法》第一章读后感
    web mis系统构建
    异常
    多态
    接口与继承
    个人总结_5.8
  • 原文地址:https://www.cnblogs.com/jedi2015/p/8492066.html
Copyright © 2011-2022 走看看