zoukankan      html  css  js  c++  java
  • Hibernate常见异常总结

    系统配置

    1.没有查找到src目录下的hibernate.cfg.xml

    Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xmlnot found

    映射配置

    2.在系统配置文件cfg.xml文件中写的映射文件名不存在

    Exception in thread "main" org.hibernate.MappingNotFoundException: resource: cn/itcast/h3/user/UserModel.hbm.xml not found

    3.配置文件中的映射属性名与模型中的属性名不统一

    Caused by: org.hibernate.PropertyNotFoundException: field [name] not found on cn.itcast.h3.user.UserModel

    4.配置文件中的数据库列名名与数据库表中的字段名名不统一

    Caused by: java.sql.BatchUpdateException: Unknown column 'user' in 'field list'

    操作增删改

    5.在进行保存前,如果对象OID没有设置值,并且生成策略为assigned

    Exception in thread "main" org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): cn.itcast.h3.user.UserModel

    6.当操作保存一个数据时,如果OID对应的值存在

    Exception in thread "main" org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

    Caused by: java.sql.BatchUpdateException: Duplicate entry '5' for key 1

    7.执行增删改语句发生错误,具体操作具体分析

    Exception in thread "main" org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update

    8.进行删改语句未找到影响的数据,抛出该异常,OID不存在

    Exception in thread "main" org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

    9.Hibernate在试图操作一个对象时,检测出该对象是TO对象,不具有OID,而执行非save相关的操作

    Exception in thread "main" org.hibernate.TransientObjectException: The given object has a null identifier: cn.itcast.h3.cache.UserModel

    10.一级缓存中加载两个不同的对象具有相同的OID数据

    Exception in thread "main" org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [cn.itcast.h3.cache.UserModel#15]

    操作查询

    11.使用load方法读取数据时,如果对应的OID不存在数据

    Exception in thread "main" org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [cn.itcast.h3.api.UserModel#100]

    12.QBC查询时,直接使用关联对象名.属性名作为查询条件

    Exception in thread "main" org.hibernate.QueryException: could not resolve property: teacher.teacherName of: cn.itcast.h3.relation.vo.StudentModel

    13.HQL进行参数设置时,索引位置错误

    Exception in thread "main" org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 2

    14.查询结果不唯一,使用uniqueResult方法得到超过一条数据

    Exception in thread "main" org.hibernate.NonUniqueResultException: query did not return a unique result: 5

    其他

    15.Hibernate操作对象过程中试图修改对象的OID

    Exception in thread "main" org.hibernate.HibernateException: identifier of an instance ofcn.itcast.h3.cache.UserModel was altered from 3 to null

    16.操作数据时,一个数据关联了瞬时对象,抛出异常

    Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: cn.itcast.h3.one2many.StudentModel

    17.Session关闭后,试图加载对象中延迟加载数据

    Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn.itcast.h3.relation.vo.TeacherModel. students, no session or session was closed

  • 相关阅读:
    InvokeRequired和Invoke
    DataGrid 得到DataGridRow 和DataGridColumn
    DataGrid 如何得到DataGridRow 和DataGridCell 对象
    安装Extended WPF Toolkit
    WPF DataGrid绑定一个组合列
    允许Root登录Docker ubuntu(MAC主机,使用portainer管理)
    photoshop人物美白教程:暗沉肤色提亮美白
    django中聚合aggregate和annotate GROUP BY的使用方法
    Django Model 基础数据库操作应用
    如何在mac上安装gitlab
  • 原文地址:https://www.cnblogs.com/e206842/p/6550605.html
Copyright © 2011-2022 走看看