feat: 添加更多条件设置重载。

This commit is contained in:
Suomm 2023-08-16 17:20:53 +08:00
parent 3e034e6b13
commit 4e0fad7e17

View File

@ -29,103 +29,79 @@ import java.util.Map;
/** /**
* @author michael * @author michael
*/ */
public interface UpdateWrapper extends Serializable { public interface UpdateWrapper extends PropertySetter<UpdateWrapper>, Serializable {
default Map<String, Object> getUpdates() { default Map<String, Object> getUpdates() {
ModifyAttrsRecordHandler handler = (ModifyAttrsRecordHandler) ((ProxyObject) this).getHandler(); ModifyAttrsRecordHandler handler = (ModifyAttrsRecordHandler) ((ProxyObject) this).getHandler();
return handler.getUpdates(); return handler.getUpdates();
} }
default UpdateWrapper set(String property, Object value, boolean condition) { @Override
if (condition) { default UpdateWrapper set(String property, Object value, boolean isEffective) {
return set(property, value); if (isEffective) {
if (value instanceof QueryWrapper
|| value instanceof QueryColumn
|| value instanceof QueryCondition) {
getUpdates().put(property, new RawValue(value));
} else {
getUpdates().put(property, value);
}
} }
return this; return this;
} }
default UpdateWrapper set(String property, Object value) { @Override
if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { default UpdateWrapper set(QueryColumn property, Object value, boolean isEffective) {
setRaw(property, value); if (isEffective) {
} else { if (value instanceof QueryWrapper
getUpdates().put(property, value); || value instanceof QueryColumn
|| value instanceof QueryCondition) {
getUpdates().put(property.getName(), new RawValue(value));
} else {
getUpdates().put(property.getName(), value);
}
} }
return this; return this;
} }
default <T> UpdateWrapper set(LambdaGetter<T> getter, Object value, boolean condition) { @Override
if (condition) { default <T> UpdateWrapper set(LambdaGetter<T> property, Object value, boolean isEffective) {
return set(getter, value); if (isEffective) {
if (value instanceof QueryWrapper
|| value instanceof QueryColumn
|| value instanceof QueryCondition) {
getUpdates().put(LambdaUtil.getFieldName(property), new RawValue(value));
} else {
getUpdates().put(LambdaUtil.getFieldName(property), value);
}
} }
return this; return this;
} }
default <T> UpdateWrapper set(LambdaGetter<T> getter, Object value) { @Override
if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { default UpdateWrapper setRaw(String property, Object value, boolean isEffective) {
setRaw(getter, value); if (isEffective) {
} else { getUpdates().put(property, new RawValue(value));
getUpdates().put(LambdaUtil.getFieldName(getter), value);
}
return this;
}
default <T> UpdateWrapper set(QueryColumn queryColumn, Object value, boolean condition) {
if (condition) {
return set(queryColumn, value);
} }
return this; return this;
} }
default <T> UpdateWrapper set(QueryColumn queryColumn, Object value) { @Override
if (value instanceof QueryWrapper || value instanceof QueryCondition || value instanceof QueryColumn) { default UpdateWrapper setRaw(QueryColumn property, Object value, boolean isEffective) {
setRaw(queryColumn, value); if (isEffective) {
} else { getUpdates().put(property.getName(), new RawValue(value));
getUpdates().put(queryColumn.getName(), value);
} }
return this; return this;
} }
@Override
default UpdateWrapper setRaw(String property, Object value, boolean condition) { default <T> UpdateWrapper setRaw(LambdaGetter<T> property, Object value, boolean isEffective) {
if (condition) { if (isEffective) {
return setRaw(property, value); getUpdates().put(LambdaUtil.getFieldName(property), new RawValue(value));
} }
return this; return this;
} }
default UpdateWrapper setRaw(String property, Object value) {
getUpdates().put(property, new RawValue(value));
return this;
}
default <T> UpdateWrapper setRaw(LambdaGetter<T> getter, Object value, boolean condition) {
if (condition) {
return setRaw(getter, value);
}
return this;
}
default <T> UpdateWrapper setRaw(LambdaGetter<T> getter, Object value) {
getUpdates().put(LambdaUtil.getFieldName(getter), new RawValue(value));
return this;
}
default <T> UpdateWrapper setRaw(QueryColumn queryColumn, Object value, boolean condition) {
if (condition) {
return setRaw(queryColumn, value);
}
return this;
}
default <T> UpdateWrapper setRaw(QueryColumn queryColumn, Object value) {
getUpdates().put(queryColumn.getName(), new RawValue(value));
return this;
}
static UpdateWrapper of(Object entity) { static UpdateWrapper of(Object entity) {
if (entity instanceof UpdateWrapper) { if (entity instanceof UpdateWrapper) {
return (UpdateWrapper) entity; return (UpdateWrapper) entity;