关于org.hibernate.ObjectNotFoundException: No row with the given identifier exist

  最近由于项目升级,外部接口变动,于是对数据库表的数据进行了一定的更新操作,当然,没有改变表的结构,后来部署时,即报错如下:

 

Java代码 
  1. 严重: Servlet.service() for servlet default threw exception  
  2. org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.iss.fit.po.system.SysDepartment#361]  
  3. at org.hibernate.impl.SessionFactoryImpl$1.handleEntityNotFound(SessionFactoryImpl.java:377)  
  4. at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:145)  
  5. at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179)  
  6. at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)  
  7. at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)  
  8. at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)  
  9. at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)  
  10. at org.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的,都是可以的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值