第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

注解 @NotEmpty 不檢查 String 是否為 null

注解 @NotEmpty 不檢查 String 是否為 null

慕的地8271018 2023-03-31 14:49:37
我正在嘗試使用 javax.validation 驗(yàn)證一些 DTO,但似乎注釋 @NotEmpty 不檢查參數(shù)是否為 null。這是我的課程:人物類public class Person {    @NotEmpty(message = "mandatoryParametersMissing")    private String name;    @NotNull(message = "mandatoryParametersMissing")    @Valid    private Job job;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Job getJob() {        return job;    }    public void setJob(Job job) {        this.job = job;    }    @Override    public String toString() {        return "Person [name=" + name + ", job=" + job + "]";    }}工作類public class Job {    @NotEmpty(message = "mandatoryParametersMissing")    private String name;    @NotNull(message = "mandatoryParametersMissing")    private Integer salary;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getSalary() {        return salary;    }    public void setSalary(Integer salary) {        this.salary = salary;    }    @Override    public String toString() {        return "Job [name=" + name + ", salary=" + salary + "]";    }}當(dāng)我嘗試通過以下 JUnit 測試時(shí),我失敗了:@Test(expected = BusinessServiceException.class)    public void testJobNameNull() {        Person samuel = new Person();        samuel.setName("Samuel Antequera");        Job programmer = new Job();        programmer.setSalary(18000);        samuel.setJob(programmer);        validatePerson(samuel);    }這是驗(yàn)證 DTO 的方法:public void validatePerson(Person in) {    ValidatorFactory factory = Validation.buildDefaultValidatorFactory();    Validator validator = factory.getValidator();    Set<ConstraintViolation<Person>> violations = validator.validate(in);    for (ConstraintViolation<Person> violation : violations) {        throw new BusinessServiceException(violation.getMessage(), violation.getPropertyPath().toString());    }}我的印象是 @NotEmpty 首先檢查參數(shù)是否為 null,我錯(cuò)了嗎?
查看完整描述

5 回答

?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

在內(nèi)部檢查最小大小為 1 和 null。在 @NotEmpty 的文檔中,明確提到:
"Asserts that the annotated string, collection, map or array is not {@code null} or empty."

查看完整回答
反對 回復(fù) 2023-03-31
?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗(yàn) 獲得超9個(gè)贊

檢查 @NotEmpty 的導(dǎo)入:

org.hibernate.validator.constraints.NotEmpty

這個(gè)對我有用!

我使用 Spring Boot2.5.5和 Hibernate 驗(yàn)證器6.2.0.final。

請注意,這javax.validation.constraints.NotBlank不起作用!


查看完整回答
反對 回復(fù) 2023-03-31
?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

我用你的代碼片段創(chuàng)建了一個(gè)演示項(xiàng)目并且它可以工作,你能檢查一下有什么不同嗎?你真的導(dǎo)入了嗎javax.validation.constraints.NotEmpty?

------------------------------------------------------

?T E S T S

-------------------------------------------------------

Running nl.martinvw.test.PersonTest

jul 17, 2019 2:38:01 PM org.hibernate.validator.internal.util.Version <clinit>

INFO: HV000001: Hibernate Validator 6.1.0.Alpha5

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.353 sec


Results :


Tests run: 2, Failures: 0, Errors: 0, Skipped: 0


查看完整回答
反對 回復(fù) 2023-03-31
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

還會(huì)檢查 @NotNull 并另外檢查所提供對象的大小/長度。對于您上面的測試用例,您將獲得 1 次違規(guī),因?yàn)槟鷽]有設(shè)置作業(yè)名稱(其為空)并且您配置為 @NotEmpty(message = "mandatoryParametersMissing") private String name;


所以 @NotEmpty 涵蓋了您的 @NotNull 案例。


我運(yùn)行了您上面的代碼并且運(yùn)行良好。我使用了以下依賴項(xiàng)


我運(yùn)行了您的代碼,它對我來說工作正常。檢查@NotEmpty 的導(dǎo)入


org.hibernate.validator.constraints.NotEmpty


我使用了以下依賴項(xiàng)


   <dependency>

        <groupId>org.hibernate</groupId>

        <artifactId>hibernate-validator</artifactId>

        <version>6.0.13.Final</version>

    </dependency>

    <dependency>

        <groupId>org.glassfish</groupId>

        <artifactId>javax.el</artifactId>

        <version>3.0.0</version>

    </dependency>

    <!-- https://mvnrepository.com/artifact/junit/junit -->

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

        <scope>test</scope>

    </dependency>


查看完整回答
反對 回復(fù) 2023-03-31
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

似乎問題出在依賴項(xiàng)上,由于某種原因在類路徑中 validation-api 的 jar 版本是錯(cuò)誤的我只是刪除了類路徑中的所有 jar 并再次添加它們并且錯(cuò)誤消失了。



查看完整回答
反對 回復(fù) 2023-03-31
  • 5 回答
  • 0 關(guān)注
  • 261 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)