正在验证@RequestBody布尔属性(为true或false)



所以我读了很多Topics,但没有在其中任何一篇中找到这些信息。如果我错过了它,如果你能引导我去看,我将不胜感激:(。

我正在使用SringBoot,得到了一个用户模型,它有一个boolean字段-活动。我使用boolean是因为我读到使用Boolean进行3个状态检查是一种不好的做法。

问题是,当我从Postman发送RequestBody时,如果我将字段保持为空,则默认为false。我读到过一些东西,比如在Body上使用@Validation@NotNull注释和@Valid检查,但这不是一个使用布尔值的选项。

主要问题:是否可以对布尔属性执行类似(@AssertTrue@AssertFalse(的操作?如果没有,那么如何确保RequestBody中的此属性不为空(不使用Boolean(?

编辑:我只是觉得这个问题可能不需要代码,因为它是非常直接的,给你,控制器方法:

@PutMapping()
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<User> modifyUser(@RequestBody User userBody)
throws NotFoundException {

用户类属性:

@Column(name = "ACTIVE")
private boolean active;

布尔数据类型是一种二进制表示(true/false(。Null值既不是true也不是false。

默认情况下,boolean的值为false。参考基元数据类型

如果您想根据发送的用户数据进行一些验证,则必须将数据类型创建为包装布尔型。这将取决于你想要的解释的场景。

  1. 如果为null,您会计算一些值并设置字段吗
  2. 是否要在数据库中将该值存储为null

但理想情况下,如果字段为布尔值,则值应为true或false。

因此,在最终结果中,我仍然必须使用布尔值,因此我可以将@NotNull注释添加到活动字段中。遗憾的是,仍然无法找到如何使用布尔值进行操作的答案。。。谢谢你的回复!

相关内容

  • 没有找到相关文章

最新更新