数据库建表时出现的org.hibernate.HibernateException: The database returned no natively generated identity value的错误

错误原因:

我设置的Id的类型是:自动增长型(如下),但是我在数据库中设置的Id确是:int类型。所以类型不匹配。导致返回:

org.hibernate.HibernateException:数据库返回的没有本地生成的标识值的错误。

@Id

@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

改正方法:

在cmd中操作数据库输入:

ALTER TABLE teacher ADD id int  AUTO_INCREMENT;
就OK了。在使用Navicat for mysql 时,在建表时,选中自动增长
时间: 2024-10-24 10:27:34

数据库建表时出现的org.hibernate.HibernateException: The database returned no natively generated identity value的错误的相关文章

关于数据库建表时的有趣实例--关键字重复

今天 使用CMD连接mysql进行简单的数据库的建表操作.信心满满的写了如下的代码: 然后就爆了个大大的错误 .简直有点莫名其妙的感觉,我是按照昨天学习的步骤写的代码,为什么会出错? 初步开始怀疑: 第一.自己的SQL语句写错了.找来了教程上的语句比较.没什么差别. 第二.是不是大小写的问题,我重新换成了大写  依旧失败. 在不知道怎么办的时候 ,我开始怀疑 这个order是不是数据库的关键字 ,因为数据排序里面有个 "order by",于是上网查找资料: 大大的英文单词摆在了那里.

关于数据库建表时字段数据类型

基础: char.varchar.text和nchar.nvarchar.ntext的区别 1.CHAR.CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充. 2.VARCHAR.存储变长数据,但存储效率没有CHAR高.如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的.VARCHAR类型的实际长度是它的值的实际

python数据库建表时出的BUG

1. 原文地址:https://www.cnblogs.com/Zhao159461/p/10921928.html

数据库建表原则

关键字: 数据库建表原则 ·1. 原始单据与实体之间的关系 可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体.这里的实体可以理解为基本表.明确这种对应关系后,对我们设计录入界面大有好处. [例]:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表.社会关系表.工作简历表.这就是“一张原始单证对应多个实体”的典型例子.

(没写完)SQL数据库建表(基础大牛请飘过就好谢谢)

--SQL表与表之间的关系-- 首先要学会找表与表之间的关系 只有把表和表之间的关系找好才 可以键表,并方便查询. 一.表与表之间有三种关系 (1)两表之间的主键存在一对一的关系 随便在一表中加上另一表的主键为该表的外键. (2)两表之间的主键存在一对多的关系 在"一"表中创建"多"表的主键为"一"表的外键. (3)两表之间的主键存在多对多的关系 重新创建一个新表并加如两个表的主键为该表的外键. 再加上两表之间的关系属性. --        

Mysql 建表时,日期时间类型选择

mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示  DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59 0000-00-00 00:00:00  TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  197001010

在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option

在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT)  ORA-00922: missing or invalid option hostdr:[/home/oracle]$sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Jul 9 12:52:11 2015 Copyright (c) 1982, 2011, Oracle. All rights reserve

字段自动递增的数据库建表的SQL写法

数据库建表的SQL写法如下: 数据库建表的SQL写法如下: create table dataC(  a int identity(1,2) primary key,  b varchar(20)) identity(1,2)中的1表示第一条记录的a的值,第二个参数表示递增的步长(本例中,表示步长为2) 在“查询分析器”中要插入数据,直接使用下面的插入方式,无须显示插入字段a的值 insert into dataC values('111')insert into dataC values('2

beego orm自动建表时字段default值不设置的解决办法

在使用beego的orm建表时,我的模型是这样建立的 type Test struct { Id int64 Name string Sex int64 `orm:"default(1)"` Age int64 Content string `orm:"default('')"` } content字段设置默认为空,Sex字段设置默认为1,那么生成的表确并没有default,这不科学,于是我翻了下源码,发现设置default的这段被注释了,位置在 github.co