我有一个简单的方法来获取给定companyId的文档列表。以下是一种方法:
@Override
public List<Documents> getDocumentList(@NotNull Integer companyId) {
Company company = new Company(companyId);
return this.documentRepository.findByCompany(company);
}我希望使用Javax验证约束来确保传入的companyId不是null。但是它似乎没有任何效果,因为我能够传递一个null值,它向下流到存储库上的findByCompany调用。我还在@Valid之前添加了@NotNull,以强制验证,但这也没有起到任何作用。
我总是可以写几行代码来检查null值,但是我希望使用javax.validation注释来使代码更加可读性和简洁性。有办法使注释在方法参数上工作吗?
发布于 2017-05-02 14:47:18
要激活参数验证,只需使用@Validated对类进行注释
import org.springframework.validation.annotation.Validated;发布于 2017-04-28 02:25:22
来自Java 6教程:
Bean验证模型由放在JavaBeans 组件、(如托管bean )的字段、方法或类上的注释形式的约束支持。
应该对与声明的bean相关的字段进行验证,如下所示:
@Entity
@Table(name="users")
public class BackgammonUser {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long userId;
@Column(name="username")
@NotBlank
private String userName;
@NotBlank
private String password;
@NotNull
private Boolean enabled;
}BackgammonUser被认为是豆子。
发布于 2017-05-03 11:31:57
如果使用方法@Inject类,它就会像预期的那样工作。
@Stateless
public class MyBean{
@Inject
TestClass test;
}和
public class TestClass {
public List<Documents> getDocumentList(@NotNull Integer companyId)
{
//...
}
}当您使用空参数调用方法时,ConstraintViolationException:
WFLYEJB0034: EJB Invocation failed on component MyBean for method ...:
javax.ejb.EJBException: javax.validation.ConstraintViolationException:
1 constraint violation(s) occurred during method validation.https://stackoverflow.com/questions/43670862
复制相似问题