我需要知道ConstraintValidator实现的isValid方法中的字段名称。
@Override
public void initialize(Unique constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
//do specific query for concrete field
Query query = entityManager.createQuery("select l from Location as l where l.trf = :trf");
query.setParameter("trf", value);
List results = query.getResultList();
if (results.size() > 0) {
return false;
}
return true;
}
一般来说,我在'上下文中有字段名称'参数。 例如,在context.basePath.currentLeafNode中。但我如何才能访问“currentLeafNode&#39 ;? 此外,我可以通过'有效载荷传递特定的班级名称。属性
@Unique(payload = Trf.class)
但我如何才能访问有效负载' ' isValid'中的数组方法
答案 0 :(得分:0)
无法在isValid
的{{1}}实施中获取属性名称。可以为此创建一个Hibernate Validator特定功能。要添加到ConstraintValidator
的某些扩展程序。您可以在https://hibernate.atlassian.net/projects/HV中创建一个问题,以获得一些反馈。
现在你最好的选择可能是有效载荷。