`

java Exception--org.springframework.dao.DataIntegrityViolationException

阅读更多
引用
exception

javax.servlet.ServletException: org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value: com.grxxh.heen.Heen.cname; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.grxxh.heen.Heen.cname
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:514)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value: com.grxxh.heen.Heen.cname; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.grxxh.heen.Heen.cname
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:690)
com.grxxh.heen.dao.impl.HeenDAO.save(HeenDAO.java:38)
com.grxxh.heen.service.impl.HeenService.addHeen(HeenService.java:24)
com.grxxh.struts.action.AddHeenAction.execute(AddHeenAction.java:58)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

org.hibernate.PropertyValueException: not-null property references a null or transient value: com.grxxh.heen.Heen.cname
org.hibernate.engine.Nullability.checkNullability(Nullability.java:72)
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:693)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:690)
com.grxxh.heen.dao.impl.HeenDAO.save(HeenDAO.java:38)
com.grxxh.heen.service.impl.HeenService.addHeen(HeenService.java:24)
com.grxxh.struts.action.AddHeenAction.execute(AddHeenAction.java:58)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


几种解决办法:
1.其中有一个字段不允许为空,需要给它赋值就可以了
2.DataIntegrityViolationException
not-null
你把数据库中的属性全都改为允许为空!解决问题!
非空属性引用了一个空的或者瞬时(游离状态)的值,可能是引用的值还没有进行持久化吧,还处于游离状态

以上是别人的办法 , 我的还没解决呢! 解决了之后再来补充!


补充:
我的问题错在JSP页面form里面input的name跟我后台框架的name属性不对应,所以取值没取回来。简单说,我把name的大小写没区分。尴尬啊尴尬!

分享到:
评论

相关推荐

    nacos-server-v2.2.0-slim-optimize.tar Docker镜像,优化匹配 虚谷数据库

    修改内容:将项目中有关拦截异常 DataIntegrityViolationException 的相关 InsertOrUpdate方法,将DataIntegrityViolationException修改为RuntimeException 是否测试通过:通过 其它:其它数据库在与Nacos适配时,...

    ibatis基本架包

    Ibatis,全称为MyBatis,是一款开源的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,极大地简化了数据访问层的编写工作。在本压缩包中,包含两个核心的JAR文件:`ibatis-common-2.jar`和`ibatis-sqlmap...

    javaee三大框架整合宅急送项目lib包

    org.springframework.dao.DataIntegrityViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#50001]; SQL [delete from JBPM4_EXECUTION where DBID_=? and DBVERSION_=?]; ...

    SPRING API 2.0.CHM

    DataIntegrityViolationException DataRetrievalFailureException DataSourceLookup DataSourceLookupFailureException DataSourceTransactionManager DataSourceUtils DB2SequenceMaxValueIncrementer ...

    dm-jdbc.rar

    JDBC驱动抛出的异常通常是SQLException及其子类,如BatchUpdateException、DataIntegrityViolationException等。捕获这些异常可以帮助开发者定位并解决数据库操作中的问题。 7. **性能优化**: 使用...

    Spring系列面试题129道(附答案解析)

    Spring Framework是一个开源的Java平台,它提供了全面的编程和配置模型,适用于企业级应用程序的开发。随着版本的更新,Spring引入了新特性和改进,例如对注解的更好支持、对异步处理的改进、对RESTful Web服务的...

    springdatajpa.zip

    Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了与各种数据存储系统交互的高级抽象。本项目是一个基于IntelliJ IDEA的实例,展示了如何在Spring应用中整合Spring Data...

    java Spring Boot 1.5.22 JPA数据库 JDK1.6

    Java Spring Boot 1.5.22 是一个流行的微服务框架,它简化了Spring应用程序的开发过程。这个版本是Spring Boot的稳定版本之一,提供了许多功能和改进,使其成为企业级应用开发的理想选择。JPA(Java Persistence API...

    Spring的DataAccessException

    该异常层次结构是 Spring 框架中 DAO(Data Access Object)模块的一部分,其目的是为了提供一个统一的错误处理机制,使得开发者可以更方便地处理数据访问层中的错误。 DataAccessException 是一个 ...

    一步一步学grails(9)

    } catch(org.springframework.dao.DataIntegrityViolationException e) { flash.message = "Crafts ${params.id} could not be deleted" redirect(action:show,id:params.id) } } else { flash.message = ...

    java直连包

    Java直连包,正如其名,是专门为Java应用程序设计的,用于实现与Microsoft SQL Server数据库的直接连接。这个包包含了必要的驱动程序和其他组件,使得Java开发者可以利用JDBC(Java Database Connectivity)API来与...

    04. SpringBoot整合持久层技术

    SpringBoot整合持久层技术是Java开发中的重要环节,它简化了传统的数据访问配置,使得开发者可以更加专注于业务逻辑。在SpringBoot中,我们通常会利用其内置的数据访问框架,如JPA(Java Persistence API)和MyBatis...

    spring 中的jdbc

    在Java的Spring框架中,JDBC(Java Database Connectivity)模块提供了对数据库操作的支持,使得开发者可以方便地进行数据存取。Spring JDBC通过一系列抽象层,简化了传统的JDBC编码,提高了可读性和可维护性。下面...

    Java-JDBC:Estudo Sobre JDBC

    Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许开发者在Java应用程序中执行SQL语句,从而实现数据的增删改查操作。...

    JDBC学习手册,开发手册两套(初学者必备)

    JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准Java API,它允许Java开发者在程序中执行SQL语句,从而实现对数据库的增删改查操作。本JDBC学习手册涵盖了JDBC的核心知识点,旨在为初学者...

    boot-jpa:Spring Boot 整合JPA

    在Java开发领域,Spring Boot以其简洁的配置和强大的功能,成为构建现代Web应用的首选框架。而Java Persistence API(JPA)作为Java领域主流的对象关系映射(ORM)解决方案,使得开发者可以使用面向对象的方式处理...

    Java语言SQL接口 JDBC编程技术

    Java语言的SQL接口,即Java Database Connectivity(JDBC),是Java平台中用于与关系数据库进行交互的一组标准API。JDBC允许Java开发者执行SQL语句,处理结果集,以及管理数据库连接。它作为桥梁,使得Java应用程序...

    Spring 异常单元测试的解决

    在上面的代码中,我们使用 try-catch 语句来捕获 DataIntegrityViolationException 异常,并断言 catchException 变量的值是否为 true。这时,我们可以确保我们的代码正确地处理了这个异常情况。 五、结论 本文...

    JDBC(ORACLE)

    在JDBC编程中,常见的异常包括`SQLException`及其子类,如`CommunicationsException`、`DataIntegrityViolationException`等。遇到异常时,应该捕获并适当地处理,确保程序的健壮性。 ### 性能优化 1. **批处理**...

    很好的jabc学习笔记

    在进行JDBC编程时,可能会遇到SQLException及其子类异常,例如CommunicationsException(网络通信异常)、DataIntegrityViolationException(数据完整性违反异常)等。因此,我们需要捕获并适当地处理这些异常,以...

Global site tag (gtag.js) - Google Analytics