报的错误信息 我删除的是 oralce  scott 用户下的 emp表  和  dept表
Hibernate: delete from DEPT where DEPTNO=?
11  11-09-01 11:54:31,156 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2292, SQLState: 23000
11  11-09-01 11:54:31,156 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02292: 违反完整约束条件 (SCOTT.FK_DEPTNO) - 已找到子记录日志11  11-09-01 11:54:31,156 [org.hibernate.util.JDBCExceptionReporter]-[WARN] SQL Error: 2292, SQLState: 23000
11  11-09-01 11:54:31,156 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] ORA-02292: 违反完整约束条件 (SCOTT.FK_DEPTNO) - 已找到子记录日志11  11-09-01 11:54:31,156 [org.hibernate.event.def.AbstractFlushingEventListener]-[ERROR] Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:575)配置文件也:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  <hibernate-mapping package="com.model">
  
   <class name="Emp" table="Emp">
  
   <id name="empno" column="EMPNO">
   <generator class="native">
   <param name="sequence">seq_dept</param>
   </generator>
   </id>
  
  
   <property name="ename"></property>
   <property name="job"></property>
   <property name="mgr"></property>
   <property name="comm"></property>
   <property name="sal"></property>
   <property name="hiredate"></property>
  
  
    <many-to-one name="dept"
                 class="Dept"
                 cascade="delete"
                 >
                 
                 
   <column name="empno"></column>              
                 </many-to-one>
  
         
         </class>
  </hibernate-mapping> 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  <hibernate-mapping package="com.model">
  
   <class name="Dept" table="DEPT">
  
   <id name="deptno" column="DEPTNO">
   <generator class="native">
   <param name="sequence">seq_dept</param>
   </generator>
   </id>
  
  
   <property name="dname"></property>
   <property name="loc"></property>
  
  
  
        <set name="emp" 
             cascade="delete"
        >
        <key column="empno"></key>
        
        <one-to-many class="Emp"/>
     
         </set>
         
         </class>
  </hibernate-mapping> 

解决方案 »

  1.   

    delete from DEPT where DEPTNO=?这个是删除表?
      

  2.   

    看这段语句>
    org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update应该是你的 配置文件设置了关联,数据却没有关联造成的,只要数据正确就没有问题。
      

  3.   

    有关联 肯定删除不了
    再说不知道你删除表干什么用hibernate
      

  4.   

    LZ是想删除表呢?还是想删除数据啊?
      不过从LZ的写法来看应该是想删除数据了!
        你删除的数据都另外一张表的数据有关联、那么你要不就删除关联!
    要不就把关联数据一起都删掉!
        Hibernate支持级联删除、只需要小小的配置一下就OK了!
     关于Hibernate级联删除的配置、度娘上有很多!
    LZ度娘一下就清楚了!!!
      

  5.   

    删除表会报这种错误,是因为你违反了约束,应该先把外键表删除了,再删除主键表,或是在配置文件里面配置一下,可以级联删除的,很简单,但我个人认为,用hibernate来删除表,不是很好的选择
      

  6.   

    提示很明確啊。你可以直接用 Toad 去刪除一下,如何不能的話,說明是表就又問題。不是hibenate 配置 的問題了