我正在使用Spring Boot + Spring Batch + myBatis。我们有2个实体(DepartmentEntity
,EmpoyeeEntity
)/ Department-mapper.xml
和Employee-mapper.xml
EmpValidationEntity.java(Employee Entity)
public class EmpValidationEntity{
private empName;
private empDept;
setter/getter
}
DepartmentValidationEntity.java(Department Entity)
public class DeptValidationEntity{
private deptName;
private Dept;
setter/getter
}
EmpMapper.xml(Employee mapper file-myBatis based)
//select query from Emp
DeptMapper.xml(Department mapper file)
//select query from Dept
EmpInterDependentFieldsValidator.java (Validator class file)
public class EmpInterDependentFieldsValidator
implements ConstraintValidator<EmpInterDependentFieldsValidation,EmpValidationEntity> {
@Override
public boolean isValid(SsnValidationEntity value,ConstraintValidatorContext context) {
Object fieldValue = null;
boolean isValid = false;
boolean isFieldValid = true;
try {
fieldValue = BeanUtils.getProperty(value,fieldName);
}
catch(Exception e){}
if (isFieldValid) {
isValid = validateFields(value,context,fieldValue,fieldName,isValid);
} else {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(ErrorMessageConstant.INVALID_FIELD)
.addPropertyNode(fieldName).addConstraintViolation();
}
}
return isValid;}
private boolean validateFields(EmpValidationEntity value,ConstraintValidatorContext context,Object fieldToValid,String fieldName,boolean isValid) {
String fieldValue = null;
if (fieldToValid != null) {
fieldValue = fieldToValid.toString();
}
if (fieldName.equalsIgnoreCase("EMPLOYEE_DEPT")) {
return EmpValidationService.validate(fieldName,value,context);
}
return isValid;
}
}
EmpValidationService.java(validation service class)
public class EmpValidationService{
static List<String> ssnList=null;
public static boolean validate(String fieldName,String fieldValue,EmpValidationEntity entity,ConstraintValidatorContext context) {
StringBuilder errorMessage = new StringBuilder();
boolean isValid = true;
if(departmentList.contains(entity.getEmpdept())){
errorMessage.append(ErrorMessageConstant.Ssn_ALREADY_TIED_TO_ANOTHER_DOB);}
}
在上面的课程中,如何获取DepartmentList(在单个加载/转储中)?
从上面的代码中,我想传递两个实体并将两个实体对象数据的范围放入EmpValidationService类,此后,我想将每个实体数据存储到不同的列表中,因为我想检查一个实体数据包含到另一个实体数据中。