mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
feat: 添加回调方法。
This commit is contained in:
parent
3e913f4bd3
commit
a858e498d3
@ -71,27 +71,17 @@ public interface MapperModel<T> {
|
||||
return save(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存数据并返回 entity 本身,并设置是否忽略 {@code null} 值。
|
||||
* 保存数据(自动忽略 {@code null} 值),结果使用 {@link Optional}
|
||||
* 返回源对象回调,保存成功返回 {@code Optional.of(this)},保存失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @return entity 本身
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default T saveAndReturnSelf() {
|
||||
return saveAndReturnSelf(true);
|
||||
default Optional<T> saveCallback() {
|
||||
return saveCallback(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存数据并返回保存成功的 id,并设置是否忽略 {@code null} 值。
|
||||
*
|
||||
* @return id 值
|
||||
*/
|
||||
default <R> R saveAndReturnId() {
|
||||
return saveAndReturnId(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存数据,并设置是否忽略 {@code null} 值。
|
||||
*
|
||||
@ -103,26 +93,15 @@ public interface MapperModel<T> {
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据并返回 entity 本身,并设置是否忽略 {@code null} 值。
|
||||
* 保存数据,并设置是否忽略 {@code null} 值,结果使用 {@link Optional}
|
||||
* 返回源对象回调,保存成功返回 {@code Optional.of(this)},保存失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @param ignoreNulls 是否忽略 {@code null} 值
|
||||
* @return entity 本身
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
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);
|
||||
return (R) pkValue();
|
||||
default Optional<T> saveCallback(boolean ignoreNulls) {
|
||||
return save(ignoreNulls) ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -135,6 +114,18 @@ public interface MapperModel<T> {
|
||||
return saveOrUpdate(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存或者更新数据,如果实体类主键没有值,则 <b>保存</b> 数据;如果实体类主键有值,则
|
||||
* <b>更新</b> 数据(全部自动忽略 {@code null} 值),结果使用 {@link Optional}
|
||||
* 返回源对象回调,保存或更新成功返回 {@code Optional.of(this)},保存或更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default Optional<T> saveOrUpdateCallback() {
|
||||
return saveOrUpdateCallback(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存或者更新数据,如果实体类主键没有值,则 <b>保存</b> 数据;如果实体类主键有值,则
|
||||
* <b>更新</b> 数据,并设置是否忽略 {@code null} 值。
|
||||
@ -146,6 +137,19 @@ public interface MapperModel<T> {
|
||||
return SqlUtil.toBool(baseMapper().insertOrUpdate((T) this, ignoreNulls));
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存或者更新数据,如果实体类主键没有值,则 <b>保存</b> 数据;如果实体类主键有值,则
|
||||
* <b>更新</b> 数据,并设置是否忽略 {@code null} 值,结果使用 {@link Optional}
|
||||
* 返回源对象回调,保存或更新成功返回 {@code Optional.of(this)},保存或更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @param ignoreNulls 是否忽略 {@code null} 值
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default Optional<T> saveOrUpdateCallback(boolean ignoreNulls) {
|
||||
return saveOrUpdate(ignoreNulls) ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键删除数据。
|
||||
*
|
||||
@ -155,6 +159,16 @@ public interface MapperModel<T> {
|
||||
return SqlUtil.toBool(baseMapper().deleteById((Serializable) pkValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键删除数据,结果使用 {@link Optional} 返回源对象回调,删除成功返回
|
||||
* {@code Optional.of(this)},删除失败返回 {@code Optional.empty()}。
|
||||
*
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default Optional<T> removeByIdCallback() {
|
||||
return removeById() ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键更新数据(自动忽略 {@code null} 值)。
|
||||
*
|
||||
@ -164,6 +178,17 @@ public interface MapperModel<T> {
|
||||
return updateById(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键更新数据(自动忽略 {@code null} 值),结果使用 {@link Optional}
|
||||
* 返回源对象回调,更新成功返回 {@code Optional.of(this)},更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default Optional<T> updateByIdCallback() {
|
||||
return updateByIdCallback(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键更新数据,并设置是否忽略 {@code null} 值。
|
||||
*
|
||||
@ -174,6 +199,18 @@ public interface MapperModel<T> {
|
||||
return SqlUtil.toBool(baseMapper().update((T) this, ignoreNulls));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键更新数据,并设置是否忽略 {@code null} 值,结果使用 {@link Optional}
|
||||
* 返回源对象回调,更新成功返回 {@code Optional.of(this)},更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @param ignoreNulls 是否忽略 {@code null} 值
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
default Optional<T> updateByIdCallback(boolean ignoreNulls) {
|
||||
return updateById(ignoreNulls) ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类主键获取一条数据。
|
||||
*
|
||||
|
||||
@ -25,6 +25,7 @@ import com.mybatisflex.core.query.QueryWrapper;
|
||||
import com.mybatisflex.core.util.SqlUtil;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Active Record 模型。
|
||||
@ -47,6 +48,16 @@ public abstract class Model<T extends Model<T>>
|
||||
return SqlUtil.toBool(baseMapper().deleteByQuery(queryWrapper()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类构建的条件删除数据,结果使用 {@link Optional} 返回源对象回调,删除成功返回
|
||||
* {@code Optional.of(this)},删除失败返回 {@code Optional.empty()}。
|
||||
*
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
public Optional<T> removeCallback() {
|
||||
return remove() ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类构建的条件更新数据(自动忽略 {@code null} 值)。
|
||||
*
|
||||
@ -56,6 +67,17 @@ public abstract class Model<T extends Model<T>>
|
||||
return update(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类构建的条件更新数据(自动忽略 {@code null} 值),结果使用 {@link Optional}
|
||||
* 返回源对象回调,更新成功返回 {@code Optional.of(this)},更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
public Optional<T> updateCallback() {
|
||||
return updateCallback(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类构建的条件更新数据,并设置是否忽略 {@code null} 值。
|
||||
*
|
||||
@ -66,6 +88,18 @@ public abstract class Model<T extends Model<T>>
|
||||
return SqlUtil.toBool(baseMapper().updateByQuery((T) this, ignoreNulls, queryWrapper()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据实体类构建的条件更新数据,并设置是否忽略 {@code null} 值,结果使用 {@link Optional}
|
||||
* 返回源对象回调,更新成功返回 {@code Optional.of(this)},更新失败返回
|
||||
* {@code Optional.empty()}。
|
||||
*
|
||||
* @param ignoreNulls 是否忽略 {@code null} 值
|
||||
* @return {@link Optional} 链式调用
|
||||
*/
|
||||
public Optional<T> updateCallback(boolean ignoreNulls) {
|
||||
return update(ignoreNulls) ? Optional.of((T) this) : Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseMapper<T> baseMapper() {
|
||||
return MapperModel.super.baseMapper();
|
||||
|
||||
@ -51,7 +51,6 @@ public class FieldsQuery<T extends Model<T>> extends FieldsBuilder<T> {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
protected Object pkValue() {
|
||||
// 懒加载,实际用到的时候才会生成 主键值
|
||||
return ((Model<T>) delegate).pkValue();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user