Cet article explique comment garantir que tous les paramètres d'une classe d'entité annotée avec @RequestBody ne sont pas nuls au Spring. Il explique le comportement par défaut de @RequestBody pour les paramètres nuls et propose plusieurs options pour gérer les paramètres nuls
Pour garantir que tous les paramètres de une classe d'entité annotée avec @RequestBody n'est pas nulle, vous pouvez utiliser l'annotation@NotNull
du packagejavax.validation
.@NotNull
annotation from thejavax.validation
package.
import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }
When the@NotNull
annotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, aConstraintViolationException
will be thrown.
By default, @RequestBody will bind a null value to a non-primitive field in the entity class. For example, if you have a field annotated with@RequestBody
and the corresponding request parameter is null, the field will be set to null in the entity class.
You have several options to handle the situation when some parameters in an entity class with @RequestBody are null:
@DefaultValue
annotation from thejavax.validation
package.import javax.validation.constraints.DefaultValue; public class MyEntity { @RequestBody private String name; @DefaultValue("unknown") private String description; // Other fields }
In this case, if thedescription
parameter is null in the request, it will be set to "unknown" in the entity class.
Optional
wrapper class from thejava.util
package.import java.util.Optional; public class MyEntity { @RequestBody private String name; private Optional description; // Other fields }
In this case, if thedescription
parameter is null in the request, thedescription
field in the entity class will be set toOptional.empty()
.
BadRequestException
rrreee@NotNull
est appliquée à un champ, Spring Validation vérifiera automatiquement si le champ n'est pas nul. S'il est nul, une
ConstraintViolationException
sera levée.
@RequestBody
et que le paramètre de requête correspondant est nul, le champ sera défini sur null dans la classe d'entité.Comment gérer les paramètres nuls dans une partie d'un Classe d'entité avec @RequestBody ?Vous disposez de plusieurs options pour gérer la situation lorsque certains paramètres d'une classe d'entité avec @RequestBody sont nuls :
@DefaultValue
du packagejavax.validation
.rrreeeDans ce cas, si ladescription
est nul dans la requête, il sera défini sur "inconnu" dans la classe d'entité.
Facultatif
du packagejava.util
.rrreeeDans ce cas, si le paramètredescription
est nul dans la requête, le champdescription
dans la classe d'entité sera défini surOptional.empty()
.
BadRequestException
si l'un des paramètres requis est nul.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!