環境:mybatis+SqlServer
完整錯誤:
### Cause: org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必須執行該語句才能獲得結果。
mybatis代碼
<insert id="addYanan" useGeneratedKeys="true" keyColumn="idgr" keyProperty="idgr">……</insert>
原本是正常的,在我加了個觸發器之后就不正常了,觸發器主要內容如下:
ALTER TRIGGER [dbo].[gerenateGrbh] ON [dbo].[YANAN] after INSERT AS BEGIN SET NOCOUNT ON; …… update …… END END
原因 觸發器update的時候用到了YANAN表的主鍵id,mybatis中useGeneratedKeys="true",這時候需要加上觸發器中SET NOCOUNT ON;(深層原因沒太深究)