hibernate经常报的几个不起眼的错误, 都是因为不细心或者手滑了输入有误造成了
最近会经常用到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经常报的几个不起眼的错误, 都是因为不细心或者手滑了输入有误造成了的更多相关文章
- maven报错非法字符:\65279 错误
开发中一个项目很早就报这个错,maven报错非法字符:\65279 错误,今天终于忍无可忍要解决它 :编译java文件的时候,有些java文件报非法字符 \65279错误,在网上找和很多 方法,也试了 ...
- 安装vs2013以后,链接数据库总是报内存损坏,无法写入的错误
安装vs2013以后,链接数据库总是报内存损坏,无法写入的错误 这个错误几个月以前解决过一次,但是到又碰到的时候,竟然完全忘记当时怎么解决的了, 看来上了年纪记忆真是越来越不行了... 解决方案很简单 ...
- ArcGIS Server注册地理数据库报machine:机器名[Oracle:(null)]错误的修改
环境介绍:本机安装了ArcGIS Server10.2,ArcGIS Desktop10.2,64位Oracle11g以及Oracle32位客户端.直连和服务连接都能成功. 问题:我要进行服务发布的时 ...
- 转:maven报错非法字符:\65279 错误
开发中一个项目很早就报这个错,maven报错非法字符:\65279 错误,今天终于忍无可忍要解决它 :编译java文件的时候,有些java文件报非法字符 \65279错误,在网上找和很多 方法,也试了 ...
- ionic3包还原使用yarn命令执行步骤(解决ionic3懒加载报找不到 module的错误)
使用cnpm 还原ionic3.6的依赖包的时候 可以正常还原,但是使用懒加载就会报找不到 module 的错误.最简单的解决办法是删除node_modules 挂个vpn 重新执行npm insta ...
- Eclipse打开Android项目报Parsing Data for android-21 failed错误的解决办法(转载)
转载:http://segmentfault.com/blog/hongliang/1190000000739285 今天手贱,用android命令打开SDK Manager下载了最新的Android ...
- 不论报任何错误 都是网络源有问题,安装spacemacs报错的解决方式
不论报任何错误 都是网络源有问题 打开.spacemacs ### 这是原头部 (defun dotspacemacs/layers () "Configuration Layers d ...
- Tomcat报java.io.IOException: Broken pipe错误
Tomcat报java.io.IOException: Broken pipe错误,如下图: 解决方案:我的原因是因为网络策略导致出现该问题,即网络端口未启用或被限制.
- 使用git pull拉取代码的时候,无法拉取最新代码,报"unable to update local ref"错误。
使用git pull拉取代码的时候,无法拉取最新代码,报"unable to update local ref"错误. 除了重新clone一份代码外,还可以使用如下解决方案: .切 ...
随机推荐
- ELK高可用搭建---Elasticsearch配置(1)
########################ElasticSearch#######################环境:192.168.125.200 elasticsearch+logst ...
- C++ namespace命名空间
1.什么是命名空间 简而言之:划片取名 加入有两个公司,公司A里面有一个员工小明,公司B里面有一个员工小明,两个公司在同一栋楼.这时,你去找小明,你再楼下大喊:“小明!你给我下来!”,这时两个小明都会 ...
- Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度-*
ylbtech-Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度 1.返回顶部 Java 实例 - 获取数组长度 Java 实例 本文我们将为大家介绍如何使用数 ...
- 关于attr("checked")的输出
同样的一段代码,在不同的文件输出不同的答案,好神奇. console.log($("#never").attr("checked")); 一个输出checked ...
- linux中nmcli命令使用及网络配置
nmcli命令与配置文件对应关系 主机名: 如果说你没有设置主机名的话,默认是localhost.localdomain 修改配置文件的主机名 # hostnamectl set-hostname ...
- Android RIL Architecture
Android RIL Architecture by Gomathi Sankar Introduction The Article explains about the buildin ...
- 10-17(day2)
这次写day2的总结 T1:表达式 题面:给你一串表达式 在本题中,我们对合法表达式定义如下:1. 任何连续(至少1个)数字是合法表达式:2. 若x是合法表达式,则(x)也是合法表达式:3. 若x和y ...
- GlusterFS PERFORMANCE TUNING
众所周知,glusterfs对小文件而言,就是个鸡肋,特别是在一个目录下有过W的小文件图片时,ls简单就是个坑,下面我对线上的glusterfs参数做一些优化调整,调整的命令: gluster vol ...
- 学习MongoDB 六: MongoDB查询(游标操作、游标信息)(三)
一.简介 db.collection.find()可以实现根据条件查询和指定使用投影运算符返回的字段省略此参数返回匹配文档中的所有字段.并返回到匹配文档的游标,可以随意修改查询限制.跳跃.和排序顺序的 ...
- Java反射 - 简单的给Bean赋值和取值
由于项目的实际需要,所以利用java反射原理写了一个简单给bean赋值和取值通用的类,在此记录下方便自己日后用到,也为需要的兄弟提供个参考例子. 工具类BeanRefUtil: package c ...