1.  
  1. Field 'id' doesn't have a default value问题解决方法
  1.  
  1.  
  2. 突然想温习温习对数据库的读写。于是就用mysql建了一张单独的表(见代码1),用Hibernate写了个应用,能够正常查询、改动数据了。
  3.  
  4. 開始时。数据是在mysqlGUI工具里手工输入的,嫌烦,于是就想到用程序批量生成一些,于是麻烦也跟着来了……
  5.  
  6. 代码1
    1. CREATE TABLE  `stitp`.`Ticket` (
    1. `id` int(11) NOT NULL,
    1. `state` tinyint(1) NOT NULL,
    1. `grade` int(2) NOT NULL,
    1. PRIMARY KEY  (`id`)
    1. ) ENGINE=InnoDB DEFAULT CHARSET=gbk
  7.  
  8.  
  9.  
  10.  
  11. 执行插入数据的java代码,报异常:field id' doesn't have a default value没错啊。我的主键怎么可能有默认值呢?不理解。谷歌了一下这个异常。一大坨结果,总结一下就是那么两种方法:
  12.  
  13. 解决方法一:
  14. 打开my.ini。查找
  15. sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  16. 改动为
  17. sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
  18. 然后重新启动MYSQL
  19.  
  20. 解决方法二:
  21. MySQL 5 uses a strict mode which needs to be disabled.
  22. In Windows, Goto Start-->Programs-->MySQL->MySQL Instance Config Wizard. Follow through the Reconfigure Instance option-->Detailed Configuration-->Continue Next a few screens. At the bottom under Enable TCP/IP option there is 'Enable Strict Mode'. Deslect this option (no tick). Save changes and MySQL will restart.
  23.  
  24. 都试了。没用,并且我是Fedora,没有ini文件。而是cnf文件(我的my.cnf在/etc以下)
  25.  
  26. 这个keyword看来是找不到办法了,换成查找hibernate里对主键的设置吧。
  27.  
  28. 果然就找到了办法!原来是.hbm.xml文件的设置问题。在里面把主键的属性改为:
    1. <generator class="assigned"/>
  29.  
  30.  
  31.  
  32.  
  33. 再执行就能够了。由于assigned是指主键是由人工分配的。而native则指主键值由库自己主动给出。我曾经都是想都没想就加上native的,反正也不知道什么意思,并且曾经用到要插入数据的表,主键都是“auto increment”的,所以也没碰到问题。这次就暴露了。
  34.  
  35. 总结一下:事实上就是缺乏对Hibernate的全面理解,没有全然掌握它的各种设置。由于当初学hibernate也是抱着"需求"学的,而不是正儿八经学习它的,没有全然理解各种设置就上手了。
  1.  
  1.  

Field &#39;id&#39; doesn&#39;t have a default value问题解决方法的更多相关文章

  1. Mysql Field * doesn't have a default value解决方法

    Mysql Field * doesn't have a default value解决方法 MySQL 5中,出现错误提示: Field 'id' doesn't have a default va ...

  2. java.sql.SQLException: Field 'login_date' doesn't have a default value解决方法

    在做web项目的insert插入操作的时候, 由于对于一个字段没有插入数据, xml文件写法如下: <insert id="savePremissUser" > ins ...

  3. ADF控件ID变化引发JS无法定位控件的解决方法

    原文地址:ADF控件ID变化引发JS无法定位控件的解决方法作者:Nicholas JSFF定义的控件ID到了客户端时往往会改变.例如在JSFF中的一个的ID为"ot1",但是当这个 ...

  4. 六.OC基础--1. id和instancetype类型,2.动态类型检测,3.响应方法,构造方法,4.重写构造方法,5.自定义构造方法

    1. id和instancetype类型, id和instancetype类型区别: 1. id和instancetype都可以用来作为方法的返回值 2. id可以用来定义类型,instancetyp ...

  5. 阿里OSS Vue上传文件提示The OSS Access Key Id you provided does not exist in our records.解决方法

    vue项目 1.安装OSS的Node SDK npm install ali-oss --save 2.参考官方提示https://help.aliyun.com/document_detail/11 ...

  6. 阿里云oss上传图片报错,The OSS Access Key Id you provided does not exist in our records.解决方法

    vue项目 1.安装OSS的Node SDK npm install ali-oss --save 2.参考官方提示https://help.aliyun.com/document_detail/11 ...

  7. 解决Incorrect integer value: &#39;&#39; for column &#39;id&#39; at row 1的方法

    在使用Navicat for MySQL还原数据库备份时.出现Incorrect integer value: '' for column 'id' at row 1的错误; 网上查资料发现5以上的版 ...

  8. 【Bug Fix】Error : Can&#39;t create table &#39;moshop_1.#sql-534_185&#39; (errno: 150)

    运行alter操作, alter table xx_shop_info add index FK9050F5D83304CDDC (shop_area), add constraint FK9050F ...

  9. [生产环境数据恢复]innobackupex: fatal error: OR no &#39;datadir&#39; option in group &#39;mysqld&#39; in MySQL options

    1 运行恢复命令  [xxx@xxx-c001db1 tmp]$ time /usr/bin/innobackupex --rsync --user="user" --passwo ...

随机推荐

  1. bzoj 1433: [ZJOI2009]假期的宿舍 -- 最大流

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MB Description Input Output Sample Input ...

  2. 【Python笔记】十分钟搞定pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯 ...

  3. 同步IO与同步非阻塞IO的理解

    本文图片均来自网络 一.同步IO---Blocking IO 在Blocking IO模型中,用户空间的应用程序执行一个系统调用(recvform),这会导致应用程序阻塞,直到数据准备好,并且将数据从 ...

  4. python开发_gzip_压缩|解压缩gz文件_完整版_博主推荐

    ''' gzip -- 支持gzip文件 源文件:Lib/gzip.py 这个模块提供了一些简单的接口来对文件进行压缩和解压缩,类似于GNU项目的gzip和gunzip. 数据的压缩源于zlib模块的 ...

  5. React Native中树 TreeView 实现(1)

    背景: 基于项目需要,在搜索第三方类库后没有很好的效果后决定动手实现. 开发环境: React Native 0.44 模型: 由于数据已经全部取出,不需要分级异步加载,故而只需要实现层级展示即可. ...

  6. ArcGIS教程:编辑特征

    摘要 通过合并.又一次编号和删除类特征来编辑和更新特征文件. 使用方法 · 编辑特征工具同意您通过下面全部操作或某一操作来改动现有特征文件: 合并一组特征类 又一次编号特征类 ID 删除不须要的特征 ...

  7. 数据库连接池中是将connection放进threadlocal里的

    我有几点不太明白的,望各位大侠指教下.1.j2ee的应用中,有一个用户请求就会启动一个线程.而如果我们把connection放在Threadlocal里的话,那么我们的程序只需要一个connectio ...

  8. AE 打开工具箱工具的对话框

    The best approach to run a system tool—or any tool or model created, and saved in a toolbox from a b ...

  9. NAT详解 z

    http://www.cnblogs.com/beginmind/p/6380489.html 1.为什么出现了NAT? IP地址只有32位,最多只有42.9亿个地址,还要去掉保留地址.组播地址,能用 ...

  10. 如何在jenkins上通过mvn方式运行sonar

    1.首先在jenkins所在机器的的maven配置文件(settings.xml)里做如下配置: <profile> <id>sonar</id> <acti ...