Closed maple-seven closed 2 weeks ago
If you would like us to spend some time helping you to diagnose the problem, please spend some time describing it and, ideally, providing a minimal yet complete sample that reproduces the problem. You can share it with us by pushing it to a separate repository on GitHub or by zipping it up and attaching it to this issue.
java
@Getter
@Setter
@Table("demo")
public class Demo {
@Id
private Long id;
@Column("uid")
private Long uid;
@Column("`key`")
private String key;
@Column("value")
private String value;
@Column("created_at")
private Instant createdAt;
}
sql:
create table demo
(
id int unsigned auto_increment
primary key,
uid bigint(11) unsigned default 0 not null comment '',
`key` varchar(100) default '' not null comment '',
value varchar(100) default '' not null comment '',
created_at datetime default CURRENT_TIMESTAMP not null
);
INSERT INTO demo (uid, `key`, value) VALUES (10000, 'key1', '0');
query:
public interface SpotMarginUserSettingReadRepository extends R2dbcRepository<Demo, Long> {
@Query("select * from demo where `key`= 'key1' and uid = :uid limit 1")
Mono<Demo> getSomeDemo(long uid);
}
the field key
in result is null;
if i remove backtick in @Column("`key`
") it works fine;
but when it excutes insert or update, it will throw a bad sql error;
R2dbcMappingContext
doesn't quote identifiers by default. Can you retest when setting R2dbcMappingContext.setForceQuote(true)
? I think you will have to register a custom R2dbcMappingContext
bean.
If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.
Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.
The field key return null when query , if set the @Column("key") it works fine ; but it'll error when insert or update because key is a keyword in mysql;