Maison >Problème commun >Certains paramètres de la classe d'entité reçus à l'aide de l'annotation @RequestBody au Spring sont nuls
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 package javax.validation
.@NotNull
annotation from the javax.validation
package.
<code class="java">import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }</code>
When the @NotNull
annotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, a ConstraintViolationException
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 the javax.validation
package.<code class="java">import javax.validation.constraints.DefaultValue; public class MyEntity { @RequestBody private String name; @DefaultValue("unknown") private String description; // Other fields }</code>
In this case, if the description
parameter is null in the request, it will be set to "unknown" in the entity class.
Optional
wrapper class from the java.util
package.<code class="java">import java.util.Optional; public class MyEntity { @RequestBody private String name; private Optional<String> description; // Other fields }</code>
In this case, if the description
parameter is null in the request, the description
field in the entity class will be set to Optional.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 package javax.validation
.🎜🎜rrreee🎜Dans ce cas, si la description
est nul dans la requête, il sera défini sur "inconnu" dans la classe d'entité.🎜Facultatif
du package java.util
.🎜🎜rrreee🎜Dans ce cas, si le paramètre description
est nul dans la requête, le champ description
dans la classe d'entité sera défini sur Optional.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!