提交 70eb7d7e 编写于 作者: zhouweidong's avatar zhouweidong

属性重复值检查

上级 2d0c4d35
......@@ -85,14 +85,14 @@ public class DupCheckAspect {
//设置检查属性值
QueryFilter filter = new QueryFilter();
filter.eq(DEFieldCacheMap.getFieldColumnName(entity.getClass(), fieldName), newValue);
searchContext.setFilter(filter);
setValue(entity,filter,fieldName,newValue);
//设定重复值检查范围
if(!StringUtils.isEmpty(dupCheckField)){
Object dupFieldValue=getDEFieldValue(entity,dupCheckField);
filter.eq(DEFieldCacheMap.getFieldColumnName(entity.getClass(), dupCheckField),dupFieldValue);
setValue(entity,filter,dupCheckField,dupFieldValue);
}
searchContext.setFilter(filter);
//使用当前值到数据库中进行查询,判断是否重复
EvaluationContext oldValueMappingCtx = new StandardEvaluationContext();
oldValueMappingCtx.setVariable("service", service);
......@@ -122,6 +122,19 @@ public class DupCheckAspect {
Expression esMappingExp = parser.parseExpression(String.format("#entity.get(\"%s\")", fieldName));
return esMappingExp.getValue(exMappingCtx);
}
/**
* 设置filter
* @param entity
* @param filter
* @param value
*/
private void setValue(Object entity , QueryFilter filter, String fieldName, Object value){
if(ObjectUtils.isEmpty(value))
filter.isnull(DEFieldCacheMap.getFieldColumnName(entity.getClass(), fieldName));
else
filter.eq(DEFieldCacheMap.getFieldColumnName(entity.getClass(), fieldName),value);
}
}
</#if>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册