java - 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 的问题吗?
项目:
- 春季启动 2.3
- MyBatis Spring 2.1.1
- SQL Server 驱动程序 8.4.1.jre11
解决方案
推荐阅读
- botframework - Teams Bot SSO 和 TeamsLogon.aspx
- microsoft-graph-api - MS-Graph 是否有类似 Office.context.mailbox.item.notificationMessages 的功能?
- arrays - React JSON 作为字符串从父组件传递到子组件日志,而不是 json 对象或可迭代数组
- google-chrome - Chrome 只记住/保留最近 20 个 IP 摄像机的登录会话
- python - 同一类的 Python `collections.defaultdict`
- reactjs - 如何在 react-pagination 包中添加带有下一个和上一个按钮的 html i 标签
- javascript - 在这种情况下如何使用 Javascript 推送数组?
- react-native - 反应本机内存泄漏反应导航
- css - 有什么方法可以动态地将css应用于我的子组件?
- asp.net-core - 如何处理 DevExtreme DataGrid 模板中的空数据条件?