Rumah >masalah biasa >Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal
Artikel ini membincangkan cara untuk memastikan bahawa semua parameter dalam kelas entiti yang dianotasi dengan @RequestBody adalah bukan nol dalam Spring. Ia menerangkan tingkah laku lalai @RequestBody untuk parameter null dan menyediakan beberapa pilihan untuk mengendalikan parameter null
Untuk memastikan semua parameter dalam kelas entiti yang diberi anotasi dengan @RequestBody bukan nol, anda boleh menggunakan anotasi @NotNull
daripada pakej 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
anotasi digunakan pada medan, Spring Validation akan menyemak secara automatik sama ada medan itu bukan nol. Jika ia adalah batal, ConstraintViolationException
akan dilemparkan.@RequestBody
dan parameter permintaan yang sepadan adalah batal, medan tersebut akan ditetapkan kepada null dalam kelas entiti.🎜🎜Cara Mengendalikan Parameter Null dalam Sebahagian daripada Kelas Entiti dengan @RequestBody?🎜🎜Anda mempunyai beberapa pilihan untuk mengendalikan situasi apabila beberapa parameter dalam kelas entiti dengan @RequestBody adalah batal:🎜@DefaultValue
daripada pakej javax.validation
.🎜🎜rrreee🎜Dalam kes ini, jika penerangan
parameter adalah batal dalam permintaan, ia akan ditetapkan kepada "tidak diketahui" dalam kelas entiti.🎜Pilihan
daripada pakej java.util
.🎜🎜rrreee🎜Dalam kes ini, jika parameter penerangan
adalah batal dalam permintaan, medan penerangan
dalam kelas entiti akan ditetapkan kepada Optional.empty()
.🎜BadRequestException
jika mana-mana parameter yang diperlukan adalah batal.🎜🎜Atas ialah kandungan terperinci Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!