我想编写一个基于R2DBC的小型反应式后端,但遇到了一些我不太理解的问题。我不知道为什么Spring试图更新一个条目,而不是将其保存到数据库中。
我的用户模型:
@Table("user")
@NoArgsConstructor
@Data
public class User {
@Id
private String id;
private String username;
private String password;
public User(String id,String username,String password){
this.id = id;
this.username = username;
this.password=password;
}
我的控制器:
@RestController
public class UserController {
` private final UserRepository userRepository`;
@Autowired
public UserController(UserRepository userRepository){
this.userRepository = userRepository;
}
@PostMapping("/create")
public Mono<User> createUser(@RequestBody User user){
return userRepository.save(user);
}
当我向此端点发送一个类似于以下输入的POST请求时:
{ "id" : "re", "username" : "ehmmidk", "password" : "dsadsadsadsa" }
即使我的数据库中没有条目,它也会执行更新而不是保存操作。
我的模式如下:
CREATE TABLE user (
id VARCHAR(255) NOT NULL ,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
UNIQUE(username)
);