Spring boot JPA findBy尝试基于实体列名而不是液化列名获取数据
我已经在spring boot项目中配置了liquibase,以便轻松迁移DB。并且,这些表是基于liquibase changelog在数据库中创建的,这是正确的。但是,当有JPA调用或保存时,将使用实体列名而不是分解列名Spring boot JPA findBy尝试基于实体列名而不是液化列名获取数据,spring-boot,hibernate,liquibase,Spring Boot,Hibernate,Liquibase,我已经在spring boot项目中配置了liquibase,以便轻松迁移DB。并且,这些表是基于liquibase changelog在数据库中创建的,这是正确的。但是,当有JPA调用或保存时,将使用实体列名而不是分解列名 你能告诉我我做错了什么吗?你需要使用@column on field映射你的列。请提供你的实体类@Rono,在实体和液化库中保持两个列名相同是必须的吗?Bcoz,只有当所有“@Column”名称和liquibase表列名都用小写字母表示时,它才起作用。@SSK,下面是我的E
你能告诉我我做错了什么吗?你需要使用@column on field映射你的列。请提供你的
实体类
@Rono,在实体和液化库中保持两个列名相同是必须的吗?Bcoz,只有当所有“@Column”名称和liquibase表列名都用小写字母表示时,它才起作用。@SSK,下面是我的EntityClass@Entity@table(name=“email_limit”)公共类EmailLimit{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name=“Id”)private long id;@Column(name=“usrnm”)private String usrnm;@Column(name=“maxmaillmt”)private Integer maxmaillmt;@Column(name=“rmngemaillmt”)private Integer rmngemaillmt;
和我的liquibase表是,
select
emaillimit0_.id as id1_1_,
emaillimit0_.maxEmailLmt as maxEmail2_1_,
emaillimit0_.rmngEmailLmt as rmngEmai3_1_,
emaillimit0_.usrNm as usrNm4_1_
from
email_limit emaillimit0_
where
emaillimit0_.usrNm=?
2020-08-28 12:49:09.958 ERROR 9100 --- [nio-8090-exec-6] o.h.e.j.s.SqlExceptionHelper : ERROR: column emaillimit0_.maxemaillmt does not exist
Hint: Perhaps you meant to reference the column "emaillimit0_.maxEmailLmt".
Position: 35