hibernate报错:Column 'id' cannot be null

本文记录了一次使用Hibernate工具创建MySQL数据库表时遇到的语法错误,并提供了正确的配置方法。错误涉及表不存在和主键定义问题,解决方案在于调整Hibernate方言设置。

报错内容:

17:21:59,843  INFO org.hibernate.tool.hbm2ddl.SchemaExport:226 - Running hbm2ddl schema export
  17:21:59,859 DEBUG org.hibernate.tool.hbm2ddl.SchemaExport:242 - import file not found: /import.sql
  17:21:59,859  INFO org.hibernate.tool.hbm2ddl.SchemaExport:251 - exporting generated schema to database
  17:21:59,859 DEBUG org.hibernate.tool.hbm2ddl.SchemaExport:377 - drop table LongMao if exists
  17:21:59,859 DEBUG org.hibernate.tool.hbm2ddl.SchemaExport:362 - Unsuccessful: drop table LongMao if exists
  17:21:59,859 DEBUG org.hibernate.tool.hbm2ddl.SchemaExport:363 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'if exists' at line 1
  17:21:59,859 DEBUG org.hibernate.tool.hbm2ddl.SchemaExport:377 - create table LongMao (id integer generated by default as identity (start with 1), name varchar(255), primary key (id))
  17:21:59,859 ERROR org.hibernate.tool.hbm2ddl.SchemaExport:348 - Unsuccessful: create table LongMao (id integer generated by default as identity (start with 1), name varchar(255), primary key (id))
  17:21:59,859 ERROR org.hibernate.tool.hbm2ddl.SchemaExport:349 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'generated by default as identity (start with 1), name varchar(255), primary key ' at line 1
  17:21:59,859  INFO org.hibernate.tool.hbm2ddl.SchemaExport:268 - schema export complete
  Hibernate: insert into LongMao (id, name) values (null, ?)
17:21:59,953  WARN org.hibernate.util.JDBCExceptionReporter:100 - SQL Error: 1048, SQLState: 23000
  17:21:59,953 ERROR org.hibernate.util.JDBCExceptionReporter:101 - Column 'id' cannot be null

----------------------------

修改为:

 <!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

注意:MySQL是这样拼的,第二个字母小写

建议直接去文档复制,不要再自己动手敲了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值