zoukankan      html  css  js  c++  java
  • org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.

    今天报了这个异常,这是页面报的

    org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.

    控制台报 

    18:52:35,859 ERROR SqlExceptionHelper:147 - Cannot delete or update a parent row: a foreign key constraint fails (`zl_cms`.`t_channel`, CONSTRAINT `FK_8xberajm2i2c97rwrellh0eqk` FOREIGN KEY (`pid`) REFERENCES `t_channel` (`id`)

    channel对象自关联

    <hibernate-mapping package="com.zl.cms.model">
    <class name="Channel" table="t_channel">
    <id name="id">
    <generator class="identity"/>
    </id>
    <property name="name" type="string"/>
    <property name="customLink" type="int" column="custom_link"/>
    <property name="customLinkUrl" type="string" column="custom_link_url"/>
    <property name="index" type="int" column="is_index"/>
    <property name="topNav" type="int" column="is_top"/>
    <property name="status" type="int"/>
    <property name="recommed" type="int"/>
    <property name="orders" type="int"/>
    <many-to-one name="parent" column="pid" cascade="all" class="Channel"/>
    <property name="type">
    <type name="org.hibernate.type.EnumType">
    <param name="enumClass">com.zl.cms.model.ChannelType</param>
    <param name="type">4</param>
    </type>
    </property>
    </class>
    </hibernate-mapping>

    原因是 hibernate级联删除问题。

       <many-to-one name="parent" column="pid" cascade="all" class="Channel"/> 这里设置了all ,应该设置成none不进行级联操作

    ,这个和数据库还是有区别

     数据库外键检查。一般情况是,当你删除父键时,不让删除,因为有子键引用这个父建id,但是hibernate的级联不一样。删除子键也不行 ,所以取消级联

  • 相关阅读:
    POJ 1386 Play on Words(单词建图+欧拉通(回)路路判断)
    HTTP协议详解??
    Python 中三大框架各自的应用场景??
    django 开发中数据库做过什么优化??
    谈一下你对 uWSGI 和 nginx 的理解??
    django 中间件的使用??
    Flask 中请求钩子的理解和应用?
    七层模型? IP ,TCP/UDP ,HTTP ,RTSP ,FTP 分别在哪层?
    说说 HTTP 和 HTTPS 区别??
    hasattr() getattr() setattr() 函数使用详解??
  • 原文地址:https://www.cnblogs.com/or2-/p/3539823.html
Copyright © 2011-2022 走看看