Rumah>Artikel> Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

DDD
DDD asal
2024-08-13 16:14:20 1053semak imbas

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

Beberapa parameter dalam kelas entiti yang diterima menggunakan anotasi @RequestBody dalam Spring adalah batal

Bagaimana untuk Memastikan Parameter Bukan Null dalam Kelas Entiti dengan @RequestBody pada Musim Bunga?

Untuk memastikan semua parameter dalam kelas entiti yang diberi anotasi dengan @RequestBody bukan nol, anda boleh menggunakan anotasi@NotNulldaripada pakejjavax.validation.@NotNullannotation from thejavax.validationpackage.

import javax.validation.constraints.NotNull; public class MyEntity { @NotNull private String name; // Other fields }

When the@NotNullannotation is applied to a field, Spring Validation will automatically check if the field is non-null. If it is null, aConstraintViolationExceptionwill be thrown.

How Does @RequestBody Handle Null Parameters?

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@RequestBodyand the corresponding request parameter is null, the field will be set to null in the entity class.

How to Handle Null Parameters in Part of an Entity Class with @RequestBody?

You have several options to handle the situation when some parameters in an entity class with @RequestBody are null:

  1. Use default values:You can provide default values for null fields by using the@DefaultValueannotation from thejavax.validationpackage.
import javax.validation.constraints.DefaultValue; public class MyEntity { @RequestBody private String name; @DefaultValue("unknown") private String description; // Other fields }

In this case, if thedescriptionparameter is null in the request, it will be set to "unknown" in the entity class.

  1. Use optional fields:You can declare optional fields in the entity class using theOptionalwrapper class from thejava.utilpackage.
import java.util.Optional; public class MyEntity { @RequestBody private String name; private Optional description; // Other fields }

In this case, if thedescriptionparameter is null in the request, thedescriptionfield in the entity class will be set toOptional.empty().

  1. Custom handling:You can also write custom code in the controller method to handle null parameters. For example, you could throw aBadRequestExceptionrrreee
  2. Apabila @NotNullanotasi digunakan pada medan, Spring Validation akan menyemak secara automatik sama ada medan itu bukan nol. Jika ia adalah batal, ConstraintViolationExceptionakan dilemparkan.
Bagaimanakah @RequestBody Mengendalikan Parameter Null?Secara lalai, @RequestBody akan mengikat nilai nol kepada medan bukan primitif dalam kelas entiti . Sebagai contoh, jika anda mempunyai medan yang diberi anotasi dengan @RequestBodydan 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:
  1. Gunakan nilai lalai:Anda boleh memberikan nilai lalai untuk medan null dengan menggunakan anotasi@DefaultValuedaripada pakejjavax.validation.rrreeeDalam kes ini, jikapeneranganparameter adalah batal dalam permintaan, ia akan ditetapkan kepada "tidak diketahui" dalam kelas entiti.
    1. Gunakan medan pilihan:Anda boleh mengisytiharkan medan pilihan dalam kelas entiti menggunakan kelas pembalutPilihandaripada pakejjava.util.rrreeeDalam kes ini, jika parameterpeneranganadalah batal dalam permintaan, medanpenerangandalam kelas entiti akan ditetapkan kepadaOptional.empty().
      1. Custom pengendalian:Anda juga boleh menulis kod tersuai dalam kaedah pengawal untuk mengendalikan parameter nol. Contohnya, anda boleh membuangBadRequestExceptionjika 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn