问题:
Hibernate: insert into vm_card_parameter_template (template_name) values (?)
2021-05-11 13:56:18.342 WARN 19100 --- [io-12000-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1054, SQLState: 42S22
2021-05-11 13:56:18.342 ERROR 19100 --- [io-12000-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown column 'template_name' in 'field list'
2021-05-11 13:56:18.345 ERROR 19100 --- [io-12000-exec-3] c.y.c.c.CardParameterTemplateController : 新增失败:could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
原因:
创建表文件中是
<!--主键自动-->
<property name="autoIncrement" value="true" dbms="mysql"/>
<changeSet id="init-schema" author="wangshuming@yihuacomputer.com">
<comment>卡参数模板表</comment>
<createTable tableName="vm_card_parameter_template" remarks="卡参数模板表">
<column name="id" type="bigint(20)" remarks="卡参数模板表主键" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="type_name" type="varchar(50)" remarks="卡参数模板名称(如磁条卡、IC卡)">
<constraints nullable="false"/>
</column>
</createTable>
<modifySql dbms="mysql">
<append value="ENGINE=INNODB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci"/>
</modifySql>
</changeSet>
实体类中是
@Column(name = "template_name")
private String templateName;//卡参数模板名称(如磁条卡、IC卡)
解决:
<property name="autoIncrement" value="true" dbms="mysql"/>
<changeSet id="init-schema" author="wangshuming@yihuacomputer.com">
<comment>卡参数模板表</comment>
<createTable tableName="vm_card_parameter_template" remarks="卡参数模板表">
<column name="id" type="bigint(20)" remarks="卡参数模板表主键" autoIncrement="${autoIncrement}">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="template_name" type="varchar(50)" remarks="卡参数模板名称(如磁条卡、IC卡)">
<constraints nullable="false"/>
</column>
</createTable>
<modifySql dbms="mysql">
<append value="ENGINE=INNODB DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci"/>
</modifySql>
</changeSet>