在Hibernate中常见的异常

在学习hibernate过程中,遇见了以下几种错误,有的是因为配置文件写的不够细心,有的是因为延迟加载的问题,所以拿出来分享一下。

(1).

org.hibernate.boot.MappingNotFoundException:Mapping (RESOURCE) not found : com/pojo/Dept.hbm.xml :origin(com/pojo/Dept.hbm.xml)

看爆出的异常 说的是Mapping映射找不到,产生这个异常的原因可能是 在maven的pom.xml中没有配置<resources>   注意<build>节点只能出现一次,如果原来有,就复制<resources>粘进去

<build>
 
<resources>
   
<resource>
     
<directory>src/main/java</directory>
     
<includes>
       
<include>**/*.xml</include>
     
</includes>
     
<filtering>true</filtering>
   
</resource>
   
<resource>
     
<directory>src/main/resources</directory>
     
<includes>
       
<include>**/*.xml</include>
       
<include>**/*.properties</include>
     
</includes>
   
</resource>
 
</resources>
</
build>


(2).修改代码以后没有生效

可能是因为工程没有重新编译



如果还不管用就把target下classes文件夹清空(不删classes,删里面的内容),再Build->Rebuild Project


如果是web工程,把target文件夹下和本工程同名的文件夹删掉,再Build ->Rebuild Project

扫描二维码关注公众号,回复: 5699285 查看本文章




3.未知实体:

org.hibernate.MappingException: Unknownentity: com.pojo.Dept

原因可能是没写Mapping文件。或者没有把Mapping文件加载到hibernate.cfg.xml中:


4.未知列

ERROR: Unknown column'NAME1' in 'field list'

映射文件(或者是sql语句中)的字段名和数据库不匹配。字段名写错了。

5.数据库不存在

ERROR: Table'test.dept11' doesn't exist


可能是在映射文件里面table的属性名字错了,也有可能是在配置文件里面的关系数据库名字写错了。

6.重复映射列

org.hibernate.MappingException: Repeatedcolumn in mapping for entity: com.pojo.Employee column:

dept_id (should bemapped with insert="false" update="false")

原因是在实体的映射文件中重复映射了某一列,解决办法是

把重复的删掉就好了。或者根据提示,在属性上添加insert="false" update="false"


7级联操作异常,就是你在级联删除啊,级联添加的时候。会出现的错误,这个直接上图片


类型转换异常

org.hibernate.exception.GenericJDBCException: Could not read entity state fromResultSet : EntityKey[com.pojo.Dept#1]

Caused by:java.sql.SQLException: Invalid value for getInt() -'test111'

映射文件中数据类型写错了

实体类和数据库中都是字符串,映射文件中写成了整数。或者就是实体类中的属性类型和数据库中的不匹配。














猜你喜欢

转载自blog.csdn.net/Chen_leilei/article/details/79936806
今日推荐