Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“错误”;无法执行批处理命令。[SQL:SQL不可用]”;在NHibernate中删除失败后_Sql_Nhibernate - Fatal编程技术网

“错误”;无法执行批处理命令。[SQL:SQL不可用]”;在NHibernate中删除失败后

“错误”;无法执行批处理命令。[SQL:SQL不可用]”;在NHibernate中删除失败后,sql,nhibernate,Sql,Nhibernate,删除与另一条记录相关的实体后,由于约束,出现以下错误: DELETE语句与约束冲突&c 我使用以下代码管理此错误: Using transazione As ITransaction = sessione.BeginTransaction Try sessione.Delete(entity) transazione.Commit() Return True Catch ex As E

删除与另一条记录相关的实体后,由于约束,出现以下错误:

DELETE语句与约束冲突&c

我使用以下代码管理此错误:

    Using transazione As ITransaction = sessione.BeginTransaction
        Try
            sessione.Delete(entity)
            transazione.Commit()
            Return True
        Catch ex As Exception
            transazione.Rollback()
            Return False
        End Try
    End Using
如果我再次尝试执行UPDATE语句,同样的错误会再次发生,即使我不再执行DELETE语句


有人能帮我理解我哪里出了问题吗?

关于被引用的实体,你有没有关于删除主实体的级联规则

通常,我使用的是Hibernate for Spring Framework,但指导原则是相同的。

请阅读,特别是第二段:

如果ISession引发异常,您应该立即回滚事务,调用ISession.Close()并放弃ISession实例。某些ISession方法不会使会话保持一致状态

调用Delete()时,注册要删除的对象。当异常发生时,并不意味着会话突然忘记了删除对象的请求。此外,对Rollback()的调用主要向数据库发出Rollback语句——它不会将加载的对象恢复到事务启动前的状态


通过在回滚事务后保留会话,您可能会在以后的事务中提交在第一个事务中所做的某些更改。

不,我不知道……映射和数据库中都没有(SQL Server 2008 R2)。数据库中的两个表之间只有一个关系