feat: add MapperModel.saveAndReturnId() and saveAndReturnSelf() methods

This commit is contained in:
开源海哥 2023-08-22 11:58:29 +08:00
parent b862c87758
commit dfc571c460

View File

@ -70,6 +70,27 @@ public interface MapperModel<T> {
return save(true);
}
/**
* 保存数据并返回 entity 本身并设置是否忽略 {@code null}
*
* @return entity 本身
*/
default T saveAndReturnSelf() {
return saveAndReturnSelf(true);
}
/**
* 保存数据并返回保存成功的 id并设置是否忽略 {@code null}
*
* @return id
*/
default <R> R saveAndReturnId() {
return saveAndReturnId(true);
}
/**
* 保存数据并设置是否忽略 {@code null}
*
@ -80,6 +101,30 @@ public interface MapperModel<T> {
return SqlUtil.toBool(baseMapper().insert((T) this, ignoreNulls));
}
/**
* 保存数据并返回 entity 本身并设置是否忽略 {@code null}
*
* @param ignoreNulls 是否忽略 {@code null}
* @return entity 本身
*/
default T saveAndReturnSelf(boolean ignoreNulls) {
baseMapper().insert((T) this, ignoreNulls);
return (T) this;
}
/**
* 保存数据并返回保存成功的 id并设置是否忽略 {@code null}
*
* @param ignoreNulls 是否忽略 {@code null}
* @return id 内容
*/
default <R> R saveAndReturnId(boolean ignoreNulls) {
baseMapper().insert((T) this, ignoreNulls);
Object[] pkValues = pkValues();
return pkValues != null && pkValues.length == 1 ? (R) pkValues[0] : (R) pkValues;
}
/**
* 保存或者更新数据如果实体类主键没有值 <b>保存</b> 数据如果实体类主键有值
* <b>更新</b> 数据全部自动忽略 {@code null}