有没有办法在不编写自定义验证的情况下实现@NotEmpty
hibernate验证?
javax.validation包不包含此批注。只有1个}}。但它不验证非空值但为空值。所以我希望看到@NotNull
的替代方案。
使用@NotEmpty
?怎么样?
答案 0 :(得分:86)
NotEmpty只是@NotNull
和@Size(min=1)
的组合。
答案 1 :(得分:7)
请注意@NotEmpty将返回有效的List<>包含null元素。
在@QueryParam List<>
的情况下有点怪异正如Affe所说,我做了一个自定义注释,本身用@NotNull和@Size(min = 1)注释了一个自定义验证器,它迭代集合并仅在元素不为空时才定位布尔标志。
答案 2 :(得分:1)
我在这个答案的成绩中得到了-2分。
所以我更新了它。
在Hibernate 6之后的Hibernate @NotEmpty源代码中,它告诉我们使用标准的{@link javax.validation.constraints.NotEmpty}约束:
javax.validation.constraints.NotEmpty
见:
Bean验证2.0(JSR 380)之后,有一个新的注释@NotEmpty:
SELECT [Accruals Raw Data].Company, [Accruals Raw Data].[Business Unit], [Accruals Raw Data].[Accrual ID], [Accruals Raw Data].[Accrual Sub Category], [Accruals Raw Data].[Posted Date], [Accruals Raw Data].[Amount $], [Accruals Raw Data].[User Name]
FROM [Accruals Raw Data]
WHERE ((([Accruals Raw Data].Company)=[Forms]![Filtered Accrual Reporting]![Company])) AND (([Accruals Raw Data].[Business Unit])=[Forms]![Filtered Accrual Reporting]![Business Unit]) AND (([Accruals Raw Data].[Accrual ID])=[Forms]![Filtered Accrual Reporting]![Accrual ID]) AND (([Accruals Raw Data].[Accrual Sub Category])=[Forms]![Filtered Accrual Reporting]![Accrual Sub Category]) AND (([Accruals Raw Data].[User Name])=[Forms]![Filtered Accrual Reporting]![User Name]));
请参阅:
http://beanvalidation.org/2.0/spec/#builtinconstraints-notempty
答案 3 :(得分:0)
对于Hibernate,在较新的版本中已弃用。
使用较新版本的Javax验证,它具有@Empty
使用
import javax.validation.constraints.NotEmpty;
@NotEmpty
private List<Record> records;