1.错误异常:
Java代码
-
org.hibernate.InstantiationException: No default constructor for entity: com.tks.skyproject.model.ImplementLogAttach
-
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:90)
-
at org.hibernate.tuple.PojoInstantiator.instantiate(PojoInstantiator.java:106)
-
at org.hibernate.tuple.AbstractEntityTuplizer.instantiate(AbstractEntityTuplizer.java:344)
-
at org.hibernate.persister.entity.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:3272)
-
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1239)
-
at org.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1228)
-
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1291)
-
at org.hibernate.loader.Loader.getRow(Loader.java:1197)
错误分析:构造函数出了问题 到类里一看 默认构造函数被删了
错误解决:到类里写上无参构造方法。
为什么要加无参数的构造方法?
原因:当查询的时候返回的实体类是一个对象实例,是hibernate动态通过反射生成的,反射的Class.forName("className").newInstance();需要对应的类提供一个无参构造函数
2.错误异常:
Java代码
-
org.hibernate.HibernateException: identifier of an instance of com.org.model.MyClass was altered from 7 to 1
-
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:85)
-
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
-
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
-
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
原因:如果我们从数据库load/get一个对象出来,虽然对它没调用update方法,但是在提交事务时候,hibernate仍要把当前对象和session中对象做比较,一旦修改了该对象某个属性,hibernate会自动执行更新操作的。导致缓存中的id和数据库中的id不一致。所以报错。
在Hibernate中是不允许修改主键的。
相关推荐
hibernate 常见异常非常不错的,hibernate 常见异常非常不错的
hibernate常见异常,hibernatejpa注解使用开发的解决方案
整理了hibernate常见的异常,有了此文档,开发中遇到的Hibernate异常调试更轻松
包含异常现象,说明,处理方法,主要为Java常见的异常,Hibernate常见异常等等
html标签的常见错误,mysql常见错误异常,oracle常见错误异常,连接池异常,maven常见异常,hibernate常见异常,struts2常见异常等.
Hibernate映射导致的几个常见异常
11.1.4. 常见问题 11.2. 数据库事务声明 11.2.1. 非托管环境 11.2.2. 使用JTA 11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查...
11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking) 11.3.2. 扩展周期的session和自动版本化 11.3.3. 脱...
11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking) 11.3.2. 扩展周期的session和自动版本化 11.3.3. 脱...
11.1.4. 常见问题 11.2. 数据库事务声明 11.2.1. 非托管环境 11.2.2. 使用JTA 11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查...
11.1.4. 常见问题 11.2. 数据库事务声明 11.2.1. 非托管环境 11.2.2. 使用JTA 11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application...
11.1.4. 常见问题 11.2. 数据库事务声明 11.2.1. 非托管环境 11.2.2. 使用JTA 11.2.3. 异常处理 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking...
异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking) 11.3.2. 扩展周期的session和自动版本化 11.3.3. 脱管对象...
12.1.4. 常见问题 12.2. 数据库事务声明 12.2.1. 非托管环境 12.2.2. 使用JTA 12.2.3. 异常处理 12.3. 乐观并发控制(Optimistic concurrency control) 12.3.1. 应用程序级别的版本检查(Application version ...
2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path、Classpath和JAVA_HOME 3.2 ...
11.2.3. 异常处理 11.2.4. 事务超时 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking) 11.3.2. 扩展周期的session和自动版本化 11.3.3. 脱...
2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path、Classpath和JAVA_HOME 3.2 ...
2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 建立和使用J2EE的开发平台 第三章 建立Java的开发平台 3.1 建立Java的开发环境 3.1.1 下载JDK 3.1.2 安装JDK 3.1.3 设定Path、Classpath和JAVA_HOME 3.2 ...
12.1.4. 常见问题 12.2. 数据库事务声明 12.2.1. 非托管环境 12.2.2. 使用JTA 12.2.3. 异常处理 12.3. 乐观并发控制(Optimistic concurrency control) 12.3.1. 应用程序级别的版本检查(Application version ...
11.1.4. 常见问题 11.2. 数据库事务声明 11.2.1. 非托管环境 11.2.2. 使用JTA 11.2.3. 异常处理 11.3. 乐观并发控制(Optimistic concurrency control) 11.3.1. 应用程序级别的版本检查(Application version checking...