最近由于项目升级,外部接口变动,于是对数据库表的数据进行了一定的更新操作,当然,没有改变表的结构,后来部署时,即报错如下:
-
严重:Servlet.service()forservletdefaultthrewexception
-
org.hibernate.ObjectNotFoundException:Norowwiththegivenidentifierexists:[com.iss.fit.po.system.SysDepartment#361]
-
atorg.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:377)
-
atorg.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:145)
-
atorg.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179)
-
atorg.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
-
atorg.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
-
atorg.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
-
atorg.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
-
atorg.hibernate.type.EntityType.resolve(EntityType.java:379)
这类错误一般分两种,即Servlet.service() for servlet default threw exception,第一种是jsp页面绑定元素错误,当然这种的错误会报的非常清楚,xx.jsp(xx,xxx)的哪个地方错误;第二种即这里的这种,哪个对实体类的映射对象#xx报错,这里的#xx,如#4,#5等等,并非固定的,来我这里的来说是SysDepartment#361,即我的A表与SysDepartment有关联,并且A表中,有一条数据,关联的SysDepartment的ID为361,所以查询引用时拿不到,就会报出上面的错误。
所以解决办法也比较简单,我这里是更新过SysDepartment表了,所以,它不存在ID为361的数据了,那么它的关联表A中,A.SysDepartment_ID这一列数据,也不存在A.SysDepartment_ID=361的,所以,你把A.SysDepartment_ID设置为SysDepartment表中新更新的数据的ID就好了,或者你在手动添加一条ID为361的,都是可以的。
分享到:
相关推荐
【hibernate面试题总汇】 hibernate 是一个强大的对象关系映射(ORM)框架,它的核心功能在于将Java对象的数据映射到关系数据库中,使得开发人员能够以面向对象的方式来处理数据库操作,而无需过多关注底层的SQL...
- 与get类似,但在对象不存在时抛出`ObjectNotFoundException`异常。 - 支持延迟加载(Lazy Loading),即在真正需要时才加载数据。 #### Spring框架的IOC容器实现 Spring框架的核心是其IOC(Inversion of ...
Hibernate是一款流行的Java ORM(对象关系映射)框架,它允许开发者将数据库操作抽象化,以对象的方式进行处理,简化了数据库编程。以下是对`Hibernate配置[归类].pdf`文件中涉及的几个主要知识点的详细解释: ### ...
11. 异常处理:熟悉Hibernate抛出的常见异常,如ConstraintViolationException、ObjectNotFoundException等,以及如何适当地捕获和处理它们。 12. 性能优化:探讨如何通过配置优化、缓存利用、批处理等策略提升...
### Hibernate的核心接口——Session详解 #### 一、Session简述 **1. Session概念** - **定义**: Session 是 Hibernate 框架中最常用的接口之一,它又被称为持久化管理器。Session 负责所有与数据库交互的工作,...
- 如果数据库中不存在该对象,则会抛出`org.hibernate.LazyInitializationException`或`org.hibernate.ObjectNotFoundException`异常。 - 使用`load()`可以提高性能,因为它减少了不必要的数据库访问。 2. **Get...
2. **异常处理:**如果使用`load()`方法加载的对象不存在于数据库中,Hibernate会抛出`ObjectNotFoundException`异常;而`get()`方法则直接返回`null`。 3. **懒加载支持:**`load()`方法默认支持懒加载,即只有在...
在后续使用该对象的属性时,会抛出`org.hibernate.ObjectNotFoundException`异常。此外,`load()`支持懒加载,即只有在真正需要使用对象时才会触发数据库查询。 - **`get()`**:此方法也用于加载对象。但如果数据库...
6. 异常处理:理解Hibernate特有的异常体系,如ConstraintViolationException和ObjectNotFoundException。 二、NHibernate:.NET平台的ORM利器 1. 概述:NHibernate是Hibernate在.NET平台上的移植版本,同样提供了...
【Hibernate和Mybatis】是两种常用的Java持久层框架,它们主要负责在业务逻辑层处理数据库的持久化操作,简化了开发者对数据库的访问和管理。 **Hibernate原理:** 1. Hibernate通过`Configuration().configure();`...
如果找不到对应的记录,将会抛出 `org.hibernate.ObjectNotFoundException` 异常。 - `load(Class<T> theClass, Serializable id)`:根据类类型和主键加载对象。 - `load(Class<T> theClass, Serializable id, ...
3.hibernate的配置文件(hibernate.cfg.xml)得存在 4.POJO.hbm.xml文件存在 5.hibernate的jar包以及数据库的驱动包存在 Hibernate的编程: 1.构建Configuration对象读取配置文件 2.读取映射文件 3.构建SessionFactory...
在Java Web开发中,Struts、Spring和Hibernate是最常见的三大框架,它们...以上就是关于Struts、Spring和Hibernate面试题的详细解析,涵盖了这三大框架的关键概念和使用技巧,对于理解和解答相关面试问题非常有帮助。
【hibernate 延迟加载】 在Java的持久化框架Hibernate中,延迟加载(Lazy Loading)是一种优化数据库访问性能的技术。它允许我们在需要时才加载关联的对象,而不是在初始查询时就一次性加载所有数据。这有助于减少...
如果数据库中不存在该对象,load()会抛出`org.hibernate.ObjectNotFoundException`异常。load()支持延迟加载,允许对象在需要时才加载。 2. list()与iterator()方法: - list()方法:在执行时,list()一次性获取...
- Hibernate提供了丰富的异常体系,如ConstraintViolationException(约束违反)、ObjectNotFoundException(对象未找到)等,有助于调试和错误处理。 ### 8. 性能优化 - 使用批处理更新和查询,减少数据库交互...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据存储。本教程聚焦于Hibernate中的Session接口以及get、load、persist这三个常用的...
以上就是关于Hibernate的一些核心知识点,这些内容涵盖了其基本的查询方式、对象加载机制、工作原理以及在处理对象关系和缓存管理上的特点。理解和掌握这些知识,对于在面试中展现对Hibernate的深入理解以及在实际...
//该方法将到classpath下解析hibernate.cfg.xml中的配置,如果不用Hibernate默认的配置文件名和路径,可在该方法中指定Hibernate配置文件的名称和路径 2.用Configuration对象获取SessionFactory和Session对象:...
了解Hibernate常见的异常,如`HibernateException`、`NonUniqueObjectException`、`ObjectNotFoundException`等,以便在编程时进行正确的错误处理。 ### 9. 事务管理 使用Transaction接口进行事务操作,如begin(),...