gpt4 book ai didi

java - 如何在更新期间将 null 设置为 QueryDSL 时间戳列?

转载 作者:行者123 更新时间:2023-12-04 11:35:41 27 4
gpt4 key购买 nike

我在 Postgre 中有下表:

CREATE TABLE user_attempts
(
id INT PRIMARY KEY NOT NULL,
username VARCHAR(50) NOT NULL,
attempts SMALLINT NOT NULL,
lastmodified TIMESTAMP,
FOREIGN KEY ( username ) REFERENCES users ( username )
);

我想通过 QueryDSL 和 Spring Data JDBC Extension 更新 lastmodified 字段如下:

template.update(userAttempts, update -> update
.set(userAttempts.attempts, (short) 0)
.set(userAttempts.lastmodified, null) // compilation error here
.where(userAttempts.username.eq(username))
.execute();

但是,QueryDSL 的 set 方法似乎无法接受 null,因为它会匹配多个函数签名。

最佳答案

基于此 QueryDSL 问题:https://github.com/querydsl/querydsl/issues/846

我应该改用 setNull 方法:

template.update(userAttempts, update -> update
.set(userAttempts.attempts, (short) 0)
.setNull(userAttempts.lastmodified)
.where(userAttempts.username.eq(username))
.execute()
);

关于java - 如何在更新期间将 null 设置为 QueryDSL 时间戳列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com