更新 Hibernate 对象(其表具有与其关联的历史触发器)时出现异常

问题描述 投票:0回答:1

我有一个表

Schools
,带有更新触发器
SchoolsHistory
。当我通过简单的 SQL 语句更新时,触发器工作正常。当 Hibernate(通过 Spring)更新对象时,我得到这个异常:

org.springframework.jdbc.UncategorizedSQLException:Hibernate 操作:
无法插入:[...]; SQL 的未分类 SQLException [sql...]; SQL
状态[空];错误代码[0];该语句必须在任何操作之前执行 可以获得结果。嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException:该语句必须是 在获得任何结果之前执行。

当我禁用触发器时,不会出现异常。

此外,触发器发生在 WebSphere 上,但不在 Tomcat 上,因此可能与集群等有关

有什么想法吗?

java spring hibernate configuration triggers
1个回答
0
投票

您的触发代码有问题。如果您说在编辑器中为

insert
语句手动输入 SQL 并且它有效,则意味着 Hibernate 使用不同的
insert
语句。您可以使用 Hibernate 属性
show_sql
:

<property name="show_sql">true</property> 

查看您使用的 sql 语句与 Hibernate 生成的 sql 语句之间的差异。有一件事很重要,hibernate 在插入新记录时使用

id
列来设置主键。检查触发代码或关闭触发器是否可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.