Closed oiltea closed 1 month ago
可以重写该方法,例如:
public class CustomEntityProvider { /** * 保存实体中不为空的字段 * * @param providerContext 上下文 * @return cacheKey */ public static String insertSelective(ProviderContext providerContext) { return SqlScript.caching(providerContext, new SqlScript() { @Override public String getSql(EntityTable entity) { return "INSERT INTO " + entity.tableName() + trimSuffixOverrides("(", ")", ",", () -> entity.insertColumns().stream().map(column -> ifTest(column.notEmptyTest(), () -> column.column() + ",") ).collect(Collectors.joining(LF))) + trimSuffixOverrides(" VALUES (", ")", ",", () -> entity.insertColumns().stream().map(column -> ifTest(column.notEmptyTest(), () -> column.variables() + ",") ).collect(Collectors.joining(LF))); } }); } }
将 notNullTest 改为 notEmptyTest。
notNullTest
notEmptyTest
然后在自定义的基类Mapper中覆盖定义即可:
public interface CustomMapper<T, I extends Serializable> extends BaseMapper<T, I> { /** * 保存实体中不为空的字段 * * @param entity 实体类 * @return 1成功,0失败 */ @Lang(Caching.class) @InsertProvider(type = CustomEntityProvider.class, method = "insertSelective") int insertSelective(T entity); }
有其他个性化需求可以参考这种方式进行修改。
可以重写该方法,例如:
将
notNullTest
改为notEmptyTest
。然后在自定义的基类Mapper中覆盖定义即可:
有其他个性化需求可以参考这种方式进行修改。