All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.power4j.fist.boot.mybaits.migrate.ColumnResolver Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2024. ChenJun ([email protected] & https://github.com/John-Chan)
 *
 * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0;
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 

* http://www.gnu.org/licenses/lgpl.html *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.power4j.fist.boot.mybaits.migrate; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.power4j.fist.boot.mybaits.crud.repository.Repository; import java.io.Serializable; import java.util.function.BiConsumer; /** * @author CJ ([email protected]) * @since 1.0 */ public class ColumnResolver implements UniqueResolver { private final Repository repository; private final BiConsumer> queryBuilder; public static ColumnResolver of(Repository repository, BiConsumer> queryBuilder) { return new ColumnResolver<>(repository, queryBuilder); } public ColumnResolver(Repository repository, BiConsumer> queryBuilder) { this.queryBuilder = queryBuilder; this.repository = repository; } @Override public boolean exists(T example) { return repository.countBy(applyQuery(example)) > 0; } @Override public void remove(T example) { repository.deleteAllBy(applyQuery(example)); } protected LambdaQueryWrapper applyQuery(T example) { LambdaQueryWrapper queryWrapper = repository.lambdaWrapper(); queryBuilder.accept(example, queryWrapper); return queryWrapper; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy