最近会经常用到hibernate了, 也经常报错, 看着屏幕上一根大红条是非常不爽的, 这几天集合了一下经常报的错误, 整合一下放到这里, 以后再出现这个错误直接去解决就好了

1, org.hibernate.exception.ConstraintViolationException: could not execute statement

  这个是最低级的错误, 刚开始的时候设置实体类的一个私有属性id, 定义了一个int型, 后来一想不对, 改成了Integer, 但是后面的get和set方法里面的数据类型没改过来, 就报了这个错误, 但是吧这个数据类型虽然不一样, 但是都是同属于一个父类, eclipse不会给你报错的, 不过细心点还是很容易看出来. 

2, org.hibernate.MappingException: Unknown entity, (翻译过来是未知的实体)

  看字面意思也应该知道是实体类出了问题, 但是......并不是实体类的问题, 前面已经说了MappingException, 因为这个项目练习的前面需要做好几个类的映射, 在hibernate.cfg.xml配置文件里我把<mapping>标签给注释掉了, 所以这个是配置文件的问题, 又是一个非常低级的错误

3, org.hibernate.MappingException: An association from the table PRODUCT refers to an unmapped class: com.hanqi.dao.factory

  又是一个配置映射文件的问题, 当时打字太快了, 以至于<many-to-one name="factoryid" class="com.hanqi.dao.Factory">这个标签的class写错了, 本来应该是Factory, 可我却写成了factory, 系统不认识了, 所以抛出了这个异常

4, org.hibernate.InstantiationException: No default constructor for entity: com.hanqi.dao.Factory

  这个错误是我故意犯的, 因为创建实体类的时候必须要带着一个默认的空的构造方法, 我故意没写, 想看看到底会报什么错误, 结果在运行到查询语句的时候抛出了这个异常, 然后我就知道了, 原来不写个空的构造方法真的会报错

  这里有一点需要注意的, 如果在实体类当中有了那个带参数的构造方法, 这个空的构造方法必须要添加, 如果没有带参数的构造方法, 那这个默认的就不要加了

5, java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object

  这个错误是一个很诡异的错误, 代码没有错, 代码逻辑没有错, 实体类, 配置文件都没有错, 甚至eclipse和数据库的打开方式也没有错, 但是他就是报错了, 至于原因我也不知道, 不过我猜了一下, 这个错误的原因是因为我的HQL查询语句加了个select, 而且select后面只有一个字段, 如果加上两个字段或者加一个count(1)都没有问题, 所以我推断, 当select后面只有一个字段的时候, 系统会自动将返回的结果转换成一个对象, 而不是一个对象的数组了, 因为我们都知道当select后面有多个字段的时候需要遍历两次, 第一次遍历集合, 第二次遍历数组, 而select后面只有一个字段的时候, 直接用对象遍历集合就好了.

hibernate经常报的几个不起眼的错误, 都是因为不细心或者手滑了输入有误造成了的更多相关文章

  1. maven报错非法字符:\65279 错误

    开发中一个项目很早就报这个错,maven报错非法字符:\65279 错误,今天终于忍无可忍要解决它 :编译java文件的时候,有些java文件报非法字符 \65279错误,在网上找和很多 方法,也试了 ...

  2. 安装vs2013以后,链接数据库总是报内存损坏,无法写入的错误

    安装vs2013以后,链接数据库总是报内存损坏,无法写入的错误 这个错误几个月以前解决过一次,但是到又碰到的时候,竟然完全忘记当时怎么解决的了, 看来上了年纪记忆真是越来越不行了... 解决方案很简单 ...

  3. ArcGIS Server注册地理数据库报machine:机器名[Oracle:(null)]错误的修改

    环境介绍:本机安装了ArcGIS Server10.2,ArcGIS Desktop10.2,64位Oracle11g以及Oracle32位客户端.直连和服务连接都能成功. 问题:我要进行服务发布的时 ...

  4. 转:maven报错非法字符:\65279 错误

    开发中一个项目很早就报这个错,maven报错非法字符:\65279 错误,今天终于忍无可忍要解决它 :编译java文件的时候,有些java文件报非法字符 \65279错误,在网上找和很多 方法,也试了 ...

  5. ionic3包还原使用yarn命令执行步骤(解决ionic3懒加载报找不到 module的错误)

    使用cnpm 还原ionic3.6的依赖包的时候 可以正常还原,但是使用懒加载就会报找不到 module 的错误.最简单的解决办法是删除node_modules 挂个vpn 重新执行npm insta ...

  6. Eclipse打开Android项目报Parsing Data for android-21 failed错误的解决办法(转载)

    转载:http://segmentfault.com/blog/hongliang/1190000000739285 今天手贱,用android命令打开SDK Manager下载了最新的Android ...

  7. 不论报任何错误 都是网络源有问题,安装spacemacs报错的解决方式

    不论报任何错误 都是网络源有问题 打开.spacemacs ### 这是原头部 (defun dotspacemacs/layers ()   "Configuration Layers d ...

  8. Tomcat报java.io.IOException: Broken pipe错误

    Tomcat报java.io.IOException: Broken pipe错误,如下图: 解决方案:我的原因是因为网络策略导致出现该问题,即网络端口未启用或被限制.

  9. 使用git pull拉取代码的时候,无法拉取最新代码,报"unable to update local ref"错误。

    使用git pull拉取代码的时候,无法拉取最新代码,报"unable to update local ref"错误. 除了重新clone一份代码外,还可以使用如下解决方案: .切 ...

随机推荐

  1. ALGO-5_蓝桥杯_算法训练_最短路

    记: 一开始没接触过关于最短距离的算法,便开始翻阅关于图的知识, 得知关于最短距离的算法有Dijkstra算法(堆优化暂未看懂),Bellman-Ford算法,Floyd算法,SPFA算法. 由于数据 ...

  2. 【Spring环境搭建】在Myeclipse下搭建Spring环境-web开发

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...

  3. phpstorm使用教程

    phpstorm包含了webstorm的全部功能,更能够支持php代码.PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时 ...

  4. mysql主从复制——双机互为主从

    第一.mysql主从复制(一主一从)怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:首先需要做一些清理工作,如果之前配置了主从,但是配置失败了.结果会在/var/lib/mysql/ ...

  5. CART、GradientBoost

    转载:https://blog.csdn.net/niuniuyuh/article/details/76922210 论文:http://pdfs.semanticscholar.org/0d97/ ...

  6. 第8章 信号(6)_贯穿案例2:mini shell(3)

    4. 贯穿案例2:mini shell(3) (1)之前存在问题 ①刚运行时,mshell作为前台进程.运行的其他命令会被加入新的进程组,并且调用tcsetpgrp将这个进程组设置为前台进程组,因此m ...

  7. 使用javascript连接mqtt协议(自动重连问题)

    因为之前是在rabbitmq的插件"RabbitMQ Web MQTT plugin "中看到使用了mqttws31.js的实例,由于对mqttws31不了解,网上下载了连接成功, ...

  8. 存储设备的DDP功能详解

    http://blog.csdn.net/u013394982/article/details/18259015 DDP功能,即Dynamic Disk Pool,它是除了现有的RAID0,1,10, ...

  9. js 解决图片居中问题

    下述方法能够解决图片居中问题: (1)宽一些或者高一些(相对父元素的大小):图片在父元素的可视范围内显示图片的中间位置 (2)小一些(相对父元素的大小):图片在父元素的可视范围内居中显示 实现原理:根 ...

  10. CentOS 6.4 i386 版本安装 FastDFS、使用Nginx作为文件访问WEB服务器

    安装环境:1. CentOS-6.4-i3862. FastDFS_v4.063. fastdfs-nginx-module_v1.154. Nginx-1.5.6(安装见此)5. libevent- ...