首页 > 解决方案 > MyBatis - UNIQUEIDENTIFIER 和 useGeneratedKeys 未按预期工作

问题描述

桌子:

CREATE TABLE [dbo].[People] 
(
    PersonId UNIQUEIDENTIFIER DEFAULT NEWID() PRIMARY KEY,
    Name VARCHAR(255) NOT NULL
);

映射器:

<insert id="insert" parameterType="Person" useGeneratedKeys="true" keyColumn="PersonId" keyProperty="personId">
    INSERT INTO [dbo].[People]
    (
        Name
    )
    VALUES
    (
        #{name}
    )
</insert>

真的很简单:

我有一个带有 GUID 作为主键的简单表的 SQL Server 2008 数据库。我想为插入数据库的任何 Person 对象返回所述 GUID。但是,无论出于何种原因,当我查看我的 Person 对象的 personId 时,它都会返回 null。

现在 - 如果我将 PersonId 更改为 IDENTIFIER/Long/BitInt,这将完全有效。它显然与 GUID 有关,但我不知道为什么。这是 MyBatis 的问题吗?

项目:

标签: javamybatisspring-mybatis

解决方案


推荐阅读