异常代码如下:
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.clinic.model.Person#0]
org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:435)
org.hibernate.proxy.AbstractLazyInitializer.checkTargetState(AbstractLazyInitializer.java:189)
org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:178)
org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:215)
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:190)
com.clinic.model.Person_$$_javassist_1.toString(Person_$$_javassist_1.java)
java.lang.String.valueOf(String.java:2827)
java.lang.StringBuilder.append(StringBuilder.java:115)
com.clinic.dao.PersonDAOImpl.queryByID(PersonDAOImpl.java:123)
com.clinic.service.PersonServiceImpl.addPerson(PersonServiceImpl.java:26)
com.clinic.action.PersonAction.add(PersonAction.java:26)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:453)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:292)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:255)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
之前都没有报这个异常,修改一些代码后,后来在注册的时候报了这个异常
经检查后,发现PersonDAOImpl中,用system.out.println中有load了
注册的时候,不能有load,要用get,哪怕是在打印中也不能
然后我把打印注释了就正常了
问题代码如下:
public Person queryByID(int id) {
System.out.println("queryByID1*****" + (Person) this.getHibernateTemplate().get(Person.class, id));
System.out.println("queryByID2*****" + this.getHibernateTemplate().get(Person.class, id));
System.out.println("queryByID3*****" + this.getHibernateTemplate().load(Person.class, id));
System.out.println("queryByID4*****" + (Person) this.getHibernateTemplate().load(Person.class, id));
return (Person) this.getHibernateTemplate().get(Person.class, id);
}
修改后为:
public Person queryByID(int id) {
System.out.println("queryByID1*****" + (Person) this.getHibernateTemplate().get(Person.class, id));
System.out.println("queryByID2*****" + this.getHibernateTemplate().get(Person.class, id));
// System.out.println("queryByID3*****" + this.getHibernateTemplate().load(Person.class, id));
// System.out.println("queryByID4*****" + (Person) this.getHibernateTemplate().load(Person.class, id));
return (Person) this.getHibernateTemplate().get(Person.class, id);
}
这个再一次说明了,get和load的区别
分享到:
相关推荐
### Hibernate的核心接口——Session详解 #### 一、Session简述 **1. Session概念** - **定义**: Session 是 Hibernate 框架中最常用的接口之一,它又被称为持久化管理器。Session 负责所有与数据库交互的工作,...
3.hibernate的配置文件(hibernate.cfg.xml)得存在 4.POJO.hbm.xml文件存在 5.hibernate的jar包以及数据库的驱动包存在 Hibernate的编程: 1.构建Configuration对象读取配置文件 2.读取映射文件 3.构建SessionFactory...
11. 异常处理:熟悉Hibernate抛出的常见异常,如ConstraintViolationException、ObjectNotFoundException等,以及如何适当地捕获和处理它们。 12. 性能优化:探讨如何通过配置优化、缓存利用、批处理等策略提升...
在后续使用该对象的属性时,会抛出`org.hibernate.ObjectNotFoundException`异常。此外,`load()`支持懒加载,即只有在真正需要使用对象时才会触发数据库查询。 - **`get()`**:此方法也用于加载对象。但如果数据库...
Hibernate 是一种开放源代码的对象关系映射框架,使得 Java 程序员可以使用对象编程思维来操作数据库。其工作原理包括读取和解析配置文档、读取和解析映射信息、创建 SessionFactory、打开 Session、创建事务、持久...
javax.ejb.ObjectNotFoundException.class javax.ejb.RemoveException.class javax.ejb.SessionBean.class javax.ejb.SessionContext.class javax.ejb.SessionSynchronization.class javax.ejb.TimedObject.class ...
- 如果数据库中不存在该对象,则会抛出`org.hibernate.LazyInitializationException`或`org.hibernate.ObjectNotFoundException`异常。 - 使用`load()`可以提高性能,因为它减少了不必要的数据库访问。 2. **Get...
Hibernate抛出的异常通常继承自`HibernateException`,如`StaleObjectStateException`表示并发控制问题,`ObjectNotFoundException`表示对象未找到等。 ### 9. 结论 Hibernate通过对象关系映射简化了Java应用的...
【Hibernate和Mybatis】是两种常用的Java持久层框架,它们主要负责在业务逻辑层处理数据库的持久化操作,简化了开发者对数据库的访问和管理。 **Hibernate原理:** 1. Hibernate通过`Configuration().configure();`...
如果找不到对应的记录,将会抛出 `org.hibernate.ObjectNotFoundException` 异常。 - `load(Class<T> theClass, Serializable id)`:根据类类型和主键加载对象。 - `load(Class<T> theClass, Serializable id, ...
Hibernate 是一个流行的开源对象关系映射(ORM)框架,它为 Java 程序员提供了一种方便的方式来操作数据库,通过将 Java 类与数据库表进行映射,使得程序员可以用面向对象的方式来处理数据。ORM 技术消除了传统 JDBC...
- 与get类似,但在对象不存在时抛出`ObjectNotFoundException`异常。 - 支持延迟加载(Lazy Loading),即在真正需要时才加载数据。 #### Spring框架的IOC容器实现 Spring框架的核心是其IOC(Inversion of ...
6. 异常处理:理解Hibernate特有的异常体系,如ConstraintViolationException和ObjectNotFoundException。 二、NHibernate:.NET平台的ORM利器 1. 概述:NHibernate是Hibernate在.NET平台上的移植版本,同样提供了...
在Java面试中,掌握特定的技术和概念至关重要,尤其是在初级程序员的面试中,这些知识往往直接影响薪资的谈判。本文将深入探讨面试中涉及的几个关键点,包括JPBM接口、Hibernate的核心接口、缓存机制、Hibernate的...
了解Hibernate常见的异常,如`HibernateException`、`NonUniqueObjectException`、`ObjectNotFoundException`等,以便在编程时进行正确的错误处理。 ### 9. 事务管理 使用Transaction接口进行事务操作,如begin(),...
Hibernate是一款流行的Java ORM(对象关系映射)框架,它允许开发者将数据库操作抽象化,以对象的方式进行处理,简化了数据库编程。以下是对`Hibernate配置[归类].pdf`文件中涉及的几个主要知识点的详细解释: ### ...
Hibernate是一个开源的Java框架,它为对象关系映射(Object Relational Mapping, ORM)提供了一种实现方式,允许Java程序员以面向对象的方式操作数据库。从Hibernate的核心概念、工作原理到其实现细节,Hibernate...
【hibernate面试题总汇】 hibernate 是一个强大的对象关系映射(ORM)框架,它的核心功能在于将Java对象的数据映射到关系数据库中,使得开发人员能够以面向对象的方式来处理数据库操作,而无需过多关注底层的SQL...