最近会经常用到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-4_蓝桥杯_算法训练_结点选择

    问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值.如果一个点被选择了,那么在树上和它相邻的点都不能被选择.求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n . 接下来的 ...

  2. java web程序 html标签中<th>和<td>的用法区别:

    <th>是用于表头式的 <td>是列 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional ...

  3. Java-Runoob-高级教程-实例-数组:05. Java 实例 – 数组输出

    ylbtech-Java-Runoob-高级教程-实例-数组:05. Java 实例 – 数组输出 1.返回顶部 1. Java 实例 - 数组输出  Java 实例 以下实例演示了如何通过循环输出数 ...

  4. Dell PowerEdge R630服务器VMware ESXI6.0服务器安装

    一.Raid 磁阵划分 官方说明:http://www.dell.com/support/article/cn/zh/cndhs1/SLN292050/%E6%88%B4%E5%B0%94%E6%9C ...

  5. ubuntu 14.04 lamp 安装与配置

    一.安装apache 1.打开终端:Ctrl+Alt+T sudo apt-get update 2.通过apt-get方式安装Apache: sudo apt-get install apache2 ...

  6. 利用.pbk来实现ADSL开机自动拨号

    当你新建拨号连接或者VPN连接之后在你的电脑里会创建一个.pbk的文件 这个.pbk的文件可以说是一个集合,将你电脑的所有连接都保存在一起. 同时你还可以将此连接复制起来传给其他人. 系统默认的.pb ...

  7. CA证书扫盲,https讲解

    很多关于CA证书的讲解. 1.什么是CA证书. 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有 ...

  8. xgCalendar在ASP.NET中的使用

    1.将wdCalendar文件夹考入项目中 2.在页面中添加引用,见3中head标签中定义 3.配置xgCalendar,两段代码放在一起就是完整的页面 body> <div> &l ...

  9. EL中拼接字符串的方法

    近期在项目中碰到一个需要在JSP页面中比较两String类型的值的问题,于是想当然的写了如下代码: <c:if test="${'p'+longValue=='p1'}"&g ...

  10. 基于RDBMS的OLAP的解决方案

    BI项目如何开发: 了解OLAP的分析方法: 对数据进行多维建模分析,也就是自己设计自己的数据方体,之后程序自动生成数据方体 数据方体: 1.自动成的表结构,仅仅有你需要的列 2.生成一条SQL语句( ...