diff --git a/eladmin-common/src/main/java/me/zhengjie/base/mybatis/BaseDao.java b/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java similarity index 71% rename from eladmin-common/src/main/java/me/zhengjie/base/mybatis/BaseDao.java rename to eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java index bb06cc4b..0d1f673e 100644 --- a/eladmin-common/src/main/java/me/zhengjie/base/mybatis/BaseDao.java +++ b/eladmin-common/src/main/java/me/zhengjie/base/BaseRepository.java @@ -1,12 +1,17 @@ -package me.zhengjie.base.mybatis; +package me.zhengjie.base; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.IService; import com.google.common.collect.Sets; import me.zhengjie.utils.WhereFun; import me.zhengjie.utils.WrapperUtils; import me.zhengjie.utils.enums.DbType; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.lang.Nullable; import java.io.Serializable; import java.util.List; @@ -17,12 +22,12 @@ import java.util.List; * @author liaojinlong * @since 2020/6/29 10:22 */ -public class BaseDao, J extends JpaRepository, T, ID extends Serializable> { +public class BaseRepository, J extends JpaRepository, T, ID extends Serializable> { protected I mpService; protected J jpaRepository; protected DbType dbType = DbType.JPA; - public BaseDao(I mpService, J jpaRepository) { + public BaseRepository(I mpService, J jpaRepository) { this.mpService = mpService; this.jpaRepository = jpaRepository; } @@ -141,6 +146,48 @@ public class BaseDao, J extends JpaRepository, T, I return t; } + public List findAll(@Nullable Specification spec) { + List t = null; + switch (dbType) { + case JPA: + t = ((JpaSpecificationExecutor) jpaRepository).findAll(spec); + break; + case MYBATIS: + t = mpFindAll(spec, null); + break; + default: + throw new IllegalStateException("Unexpected value: " + dbType); + } + return t; + } + + public Object findAll(@Nullable Specification spec, Pageable pageable) { + Object t = null; + switch (dbType) { + case JPA: + t = ((JpaSpecificationExecutor) jpaRepository).findAll(spec, pageable); + break; + case MYBATIS: + t = mpFindAll(spec, pageable); + break; + default: + throw new IllegalStateException("Unexpected value: " + dbType); + } + return t; + } + + /** + * Mp 适配 + * + * @param spec + * @param pageable + * @return + */ + protected List mpFindAll(Specification spec, Pageable pageable) { + final QueryWrapper query = Wrappers.query(); + return mpService.page(null, null); + } + public I getMpService() { return mpService; } diff --git a/eladmin-common/src/main/java/me/zhengjie/db/ElPredicate.java b/eladmin-common/src/main/java/me/zhengjie/db/ElPredicate.java new file mode 100644 index 00000000..049c4adb --- /dev/null +++ b/eladmin-common/src/main/java/me/zhengjie/db/ElPredicate.java @@ -0,0 +1,122 @@ +/* + * Copyright 2019-2020 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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 me.zhengjie.db; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.util.Assert; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Predicate; + +/** + * MyBatis & JPA 查询适配 + * + * @author liaojinlong + * @since 2020/7/2 19:18 + */ +public class ElPredicate implements Predicate { + private Predicate predicate; + private QueryWrapper queryWrapper; + + public ElPredicate(Predicate predicate, QueryWrapper queryWrapper) { + this.predicate = predicate; + this.queryWrapper = queryWrapper; + } + + + /** + * Evaluates this predicate on the given argument. + * + * @param o the input argument + * @return {@code true} if the input argument matches the predicate, + * otherwise {@code false} + */ + @Override + public boolean test(T o) { + return predicate.test(o); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical + * AND of this predicate and another. When evaluating the composed + * predicate, if this predicate is {@code false}, then the {@code other} + * predicate is not evaluated. + * + *

Any exceptions thrown during evaluation of either predicate are relayed + * to the caller; if evaluation of this predicate throws an exception, the + * {@code other} predicate will not be evaluated. + * + * @param other a predicate that will be logically-ANDed with this + * predicate + * @return a composed predicate that represents the short-circuiting logical + * AND of this predicate and the {@code other} predicate + * @throws NullPointerException if other is null + */ + @Override + public Predicate and(Predicate other) { + return predicate.and(other); + } + + /** + * Returns a predicate that represents the logical negation of this + * predicate. + * + * @return a predicate that represents the logical negation of this + * predicate + */ + @Override + public Predicate negate() { + return predicate.negate(); + } + + /** + * Returns a composed predicate that represents a short-circuiting logical + * OR of this predicate and another. When evaluating the composed + * predicate, if this predicate is {@code true}, then the {@code other} + * predicate is not evaluated. + * + *

Any exceptions thrown during evaluation of either predicate are relayed + * to the caller; if evaluation of this predicate throws an exception, the + * {@code other} predicate will not be evaluated. + * + * @param other a predicate that will be logically-ORed with this + * predicate + * @return a composed predicate that represents the short-circuiting logical + * OR of this predicate and the {@code other} predicate + * @throws NullPointerException if other is null + */ + @Override + public Predicate or(Predicate other) { + return predicate.or(other); + } + + public static synchronized List> toConvert(List> predicates, List> queryWrappers) { + Assert.isTrue(predicates.size() == queryWrappers.size(), "二者数量必须匹配"); + List> result = new ArrayList<>(queryWrappers.size()); + for (int i = 0; i < predicates.size(); i++) { + Predicate tPredicate = predicates.get(i); + QueryWrapper queryWrapper = queryWrappers.get(i); + result.add(toConvert(tPredicate, queryWrapper)); + } + return result; + } + + public static synchronized ElPredicate toConvert(Predicate predicate, QueryWrapper queryWrapper) { + return new ElPredicate(predicate, queryWrapper); + } +} + diff --git a/eladmin-common/src/main/java/me/zhengjie/db/ElSpecification.java b/eladmin-common/src/main/java/me/zhengjie/db/ElSpecification.java new file mode 100644 index 00000000..f59511cc --- /dev/null +++ b/eladmin-common/src/main/java/me/zhengjie/db/ElSpecification.java @@ -0,0 +1,27 @@ +/* + * Copyright 2019-2020 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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 me.zhengjie.db; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.data.jpa.domain.Specification; + +/** + * @author liaojinlong + * @since 2020/7/2 19:39 + */ +public abstract class ElSpecification implements Specification { + protected QueryWrapper queryWrapper; +} diff --git a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableFieldImp.java b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableFieldImp.java similarity index 99% rename from eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableFieldImp.java rename to eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableFieldImp.java index 98fff17f..bb5cdca0 100644 --- a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableFieldImp.java +++ b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableFieldImp.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package me.zhengjie.mybatis.annotation.impl; +package me.zhengjie.db.mybatis; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldStrategy; diff --git a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableIdImp.java b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableIdImp.java similarity index 97% rename from eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableIdImp.java rename to eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableIdImp.java index 79859ad6..762d78ba 100644 --- a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableIdImp.java +++ b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableIdImp.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package me.zhengjie.mybatis.annotation.impl; +package me.zhengjie.db.mybatis; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; diff --git a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableNameImp.java b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableNameImp.java similarity index 98% rename from eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableNameImp.java rename to eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableNameImp.java index 6a52211e..02788b10 100644 --- a/eladmin-common/src/main/java/me/zhengjie/mybatis/annotation/impl/TableNameImp.java +++ b/eladmin-common/src/main/java/me/zhengjie/db/mybatis/TableNameImp.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package me.zhengjie.mybatis.annotation.impl; +package me.zhengjie.db.mybatis; import com.baomidou.mybatisplus.annotation.TableName; diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java index 321b766d..a1691c23 100644 --- a/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java +++ b/eladmin-common/src/main/java/me/zhengjie/utils/QueryHelp.java @@ -21,6 +21,7 @@ import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import me.zhengjie.annotation.DataPermission; import me.zhengjie.annotation.Query; + import javax.persistence.criteria.*; import java.lang.reflect.Field; import java.util.*; @@ -30,25 +31,34 @@ import java.util.*; * @date 2019-6-4 14:59:48 */ @Slf4j -@SuppressWarnings({"unchecked","all"}) +@SuppressWarnings({"unchecked", "all"}) public class QueryHelp { - + /** + * JPA 查询参数构建 + * + * @param root + * @param query + * @param cb + * @param + * @param + * @return / + */ public static Predicate getPredicate(Root root, Q query, CriteriaBuilder cb) { List list = new ArrayList<>(); - if(query == null){ + if (query == null) { return cb.and(list.toArray(new Predicate[0])); } // 数据权限验证 DataPermission permission = query.getClass().getAnnotation(DataPermission.class); - if(permission != null){ + if (permission != null) { // 获取数据权限 List dataScopes = SecurityUtils.getCurrentUserDataScope(); - if(CollectionUtil.isNotEmpty(dataScopes)){ - if(StringUtils.isNotBlank(permission.joinName()) && StringUtils.isNotBlank(permission.fieldName())) { + if (CollectionUtil.isNotEmpty(dataScopes)) { + if (StringUtils.isNotBlank(permission.joinName()) && StringUtils.isNotBlank(permission.fieldName())) { Join join = root.join(permission.joinName(), JoinType.LEFT); - list.add(getExpression(permission.fieldName(),join, root).in(dataScopes)); + list.add(getExpression(permission.fieldName(), join, root).in(dataScopes)); } else if (StringUtils.isBlank(permission.joinName()) && StringUtils.isNotBlank(permission.fieldName())) { - list.add(getExpression(permission.fieldName(),null, root).in(dataScopes)); + list.add(getExpression(permission.fieldName(), null, root).in(dataScopes)); } } } @@ -87,79 +97,81 @@ public class QueryHelp { for (String name : joinNames) { switch (q.join()) { case LEFT: - if(ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)){ + if (ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)) { join = join.join(name, JoinType.LEFT); } else { join = root.join(name, JoinType.LEFT); } break; case RIGHT: - if(ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)){ + if (ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)) { join = join.join(name, JoinType.RIGHT); } else { join = root.join(name, JoinType.RIGHT); } break; case INNER: - if(ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)){ + if (ObjectUtil.isNotNull(join) && ObjectUtil.isNotNull(val)) { join = join.join(name, JoinType.INNER); } else { join = root.join(name, JoinType.INNER); } break; - default: break; + default: + break; } } } switch (q.type()) { case EQUAL: - list.add(cb.equal(getExpression(attributeName,join,root) - .as((Class) fieldType),val)); + list.add(cb.equal(getExpression(attributeName, join, root) + .as((Class) fieldType), val)); break; case GREATER_THAN: - list.add(cb.greaterThanOrEqualTo(getExpression(attributeName,join,root) + list.add(cb.greaterThanOrEqualTo(getExpression(attributeName, join, root) .as((Class) fieldType), (Comparable) val)); break; case LESS_THAN: - list.add(cb.lessThanOrEqualTo(getExpression(attributeName,join,root) + list.add(cb.lessThanOrEqualTo(getExpression(attributeName, join, root) .as((Class) fieldType), (Comparable) val)); break; case LESS_THAN_NQ: - list.add(cb.lessThan(getExpression(attributeName,join,root) + list.add(cb.lessThan(getExpression(attributeName, join, root) .as((Class) fieldType), (Comparable) val)); break; case INNER_LIKE: - list.add(cb.like(getExpression(attributeName,join,root) + list.add(cb.like(getExpression(attributeName, join, root) .as(String.class), "%" + val.toString() + "%")); break; case LEFT_LIKE: - list.add(cb.like(getExpression(attributeName,join,root) + list.add(cb.like(getExpression(attributeName, join, root) .as(String.class), "%" + val.toString())); break; case RIGHT_LIKE: - list.add(cb.like(getExpression(attributeName,join,root) + list.add(cb.like(getExpression(attributeName, join, root) .as(String.class), val.toString() + "%")); break; case IN: - if (CollUtil.isNotEmpty((Collection)val)) { - list.add(getExpression(attributeName,join,root).in((Collection) val)); + if (CollUtil.isNotEmpty((Collection) val)) { + list.add(getExpression(attributeName, join, root).in((Collection) val)); } break; case NOT_EQUAL: - list.add(cb.notEqual(getExpression(attributeName,join,root), val)); + list.add(cb.notEqual(getExpression(attributeName, join, root), val)); break; case NOT_NULL: - list.add(cb.isNotNull(getExpression(attributeName,join,root))); + list.add(cb.isNotNull(getExpression(attributeName, join, root))); break; case IS_NULL: - list.add(cb.isNull(getExpression(attributeName,join,root))); + list.add(cb.isNull(getExpression(attributeName, join, root))); break; case BETWEEN: - List between = new ArrayList<>((List)val); + List between = new ArrayList<>((List) val); list.add(cb.between(getExpression(attributeName, join, root).as((Class) between.get(0).getClass()), (Comparable) between.get(0), (Comparable) between.get(1))); break; - default: break; + default: + break; } } field.setAccessible(accessible); @@ -167,6 +179,7 @@ public class QueryHelp { } catch (Exception e) { log.error(e.getMessage(), e); } + int size = list.size(); return cb.and(list.toArray(new Predicate[size])); } diff --git a/eladmin-common/src/main/java/me/zhengjie/utils/SpecificationUtils.java b/eladmin-common/src/main/java/me/zhengjie/utils/SpecificationUtils.java new file mode 100644 index 00000000..d5730a95 --- /dev/null +++ b/eladmin-common/src/main/java/me/zhengjie/utils/SpecificationUtils.java @@ -0,0 +1,49 @@ +/* + * Copyright 2019-2020 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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 me.zhengjie.utils; + +import me.zhengjie.db.ElSpecification; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + +/** + * @author liaojinlong + * @since 2020/7/2 19:44 + */ +public class SpecificationUtils { + public static synchronized ElSpecification getSpecification() { + return new ElSpecification() { + /** + * Creates a WHERE clause for a query of the referenced entity in form of a {@link Predicate} for the given + * {@link Root} and {@link CriteriaQuery}. + * + * @param root must not be {@literal null}. + * @param query must not be {@literal null}. + * @param criteriaBuilder must not be {@literal null}. + * @return a {@link Predicate}, may be {@literal null}. + */ + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + return QueryHelp.getPredicate(root, query, criteriaBuilder); + } + }; + + + } +} diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoDao.java b/eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoRepository.java similarity index 80% rename from eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoDao.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoRepository.java index 0d373a42..8718431b 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoDao.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/ColumnInfoRepository.java @@ -16,10 +16,10 @@ package me.zhengjie.repository; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import me.zhengjie.base.mybatis.BaseDao; +import me.zhengjie.base.BaseRepository; import me.zhengjie.domain.ColumnInfo; -import me.zhengjie.repository.jpa.ColumnInfoRepository; -import me.zhengjie.repository.mp.ColumnInfoService; +import me.zhengjie.repository.jpa.ColumnInfoJpaRepository; +import me.zhengjie.repository.mp.ColumnInfoMpService; import me.zhengjie.utils.enums.DbType; import org.springframework.stereotype.Component; @@ -32,9 +32,9 @@ import java.util.List; * @since 2020/6/28 14:59 */ @Component -public class ColumnInfoDao extends BaseDao { +public class ColumnInfoRepository extends BaseRepository { - public ColumnInfoDao(ColumnInfoService baseService, ColumnInfoRepository jpaRepository) { + public ColumnInfoRepository(ColumnInfoMpService baseService, ColumnInfoJpaRepository jpaRepository) { super(baseService, jpaRepository); setDbType(DbType.MYBATIS); } diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigDao.java b/eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigRepository.java similarity index 70% rename from eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigDao.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigRepository.java index 938efa4f..54dce666 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigDao.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/GenConfigRepository.java @@ -1,10 +1,10 @@ package me.zhengjie.repository; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import me.zhengjie.base.mybatis.BaseDao; +import me.zhengjie.base.BaseRepository; import me.zhengjie.domain.GenConfig; -import me.zhengjie.repository.jpa.GenConfigRepository; -import me.zhengjie.repository.mp.GenConfigService; +import me.zhengjie.repository.jpa.GenConfigJpaRepository; +import me.zhengjie.repository.mp.GenConfigMpService; import org.springframework.stereotype.Repository; @@ -15,8 +15,8 @@ import org.springframework.stereotype.Repository; * @since 2020/7/1 23:00 */ @Repository -public class GenConfigDao extends BaseDao { - public GenConfigDao(GenConfigService mpService, GenConfigRepository jpaRepository) { +public class GenConfigRepository extends BaseRepository { + public GenConfigRepository(GenConfigMpService mpService, GenConfigJpaRepository jpaRepository) { super(mpService, jpaRepository); } diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoRepository.java b/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoJpaRepository.java similarity index 82% rename from eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoRepository.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoJpaRepository.java index 61fe7785..78006f38 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoRepository.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/ColumnInfoJpaRepository.java @@ -17,16 +17,19 @@ package me.zhengjie.repository.jpa; import me.zhengjie.domain.ColumnInfo; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; + import java.util.List; /** * @author Zheng Jie * @date 2019-01-14 */ -public interface ColumnInfoRepository extends JpaRepository { +public interface ColumnInfoJpaRepository extends JpaRepository, JpaSpecificationExecutor { /** * 查询表信息 + * * @param tableName 表格名 * @return 表信息 */ diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigRepository.java b/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigJpaRepository.java similarity index 79% rename from eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigRepository.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigJpaRepository.java index f460aa75..f0084565 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigRepository.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/jpa/GenConfigJpaRepository.java @@ -15,17 +15,20 @@ */ package me.zhengjie.repository.jpa; + import me.zhengjie.domain.ColumnInfo; import me.zhengjie.domain.GenConfig; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; /** * @author Zheng Jie * @date 2019-01-14 */ -public interface GenConfigRepository extends JpaRepository { +public interface GenConfigJpaRepository extends JpaRepository, JpaSpecificationExecutor { /** * 查询表配置 + * * @param tableName 表名 * @return / */ diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMapper.java b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpMapper.java similarity index 91% rename from eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMapper.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpMapper.java index 3682e91a..455766e8 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMapper.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpMapper.java @@ -22,5 +22,5 @@ import me.zhengjie.domain.ColumnInfo; * @author liaojinlong * @since 2020/6/28 14:57 */ -public interface ColumnInfoMapper extends BaseMapper { +public interface ColumnInfoMpMapper extends BaseMapper { } diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoService.java b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpService.java similarity index 90% rename from eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoService.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpService.java index 37f36f8b..bba993e1 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoService.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/ColumnInfoMpService.java @@ -24,5 +24,5 @@ import org.springframework.stereotype.Repository; * @since 2020/6/28 14:57 */ @Repository -public class ColumnInfoService extends ServiceImpl { +public class ColumnInfoMpService extends ServiceImpl { } diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMapper.java b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpMapper.java similarity index 92% rename from eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMapper.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpMapper.java index 9cb57147..f2b64513 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMapper.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpMapper.java @@ -23,5 +23,5 @@ import me.zhengjie.domain.GenConfig; * @author liaojinlong * @since 2020/6/28 14:57 */ -public interface GenConfigMapper extends BaseMapper { +public interface GenConfigMpMapper extends BaseMapper { } diff --git a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigService.java b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpService.java similarity index 91% rename from eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigService.java rename to eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpService.java index 93eeb3b9..8aa0d54b 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigService.java +++ b/eladmin-generator/src/main/java/me/zhengjie/repository/mp/GenConfigMpService.java @@ -24,5 +24,5 @@ import org.springframework.stereotype.Repository; * @since 2020/6/28 14:57 */ @Repository -public class GenConfigService extends ServiceImpl { +public class GenConfigMpService extends ServiceImpl { } diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java index 4ab92c28..832d7e08 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GenConfigServiceImpl.java @@ -17,8 +17,7 @@ package me.zhengjie.service.impl; import lombok.RequiredArgsConstructor; import me.zhengjie.domain.GenConfig; -import me.zhengjie.repository.GenConfigDao; -import me.zhengjie.repository.jpa.GenConfigRepository; +import me.zhengjie.repository.GenConfigRepository; import me.zhengjie.service.GenConfigService; import me.zhengjie.utils.StringUtils; import org.springframework.stereotype.Service; @@ -32,7 +31,7 @@ import java.io.File; @RequiredArgsConstructor public class GenConfigServiceImpl implements GenConfigService { - private final GenConfigDao genConfigDao; + private final GenConfigRepository genConfigDao; @Override public GenConfig find(String tableName) { diff --git a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java index 28b9d2db..f515fa0a 100644 --- a/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java +++ b/eladmin-generator/src/main/java/me/zhengjie/service/impl/GeneratorServiceImpl.java @@ -23,7 +23,7 @@ import me.zhengjie.domain.GenConfig; import me.zhengjie.domain.ColumnInfo; import me.zhengjie.domain.vo.TableInfo; import me.zhengjie.exception.BadRequestException; -import me.zhengjie.repository.ColumnInfoDao; +import me.zhengjie.repository.ColumnInfoRepository; import me.zhengjie.service.GeneratorService; import me.zhengjie.utils.FileUtil; import me.zhengjie.utils.GenUtil; @@ -58,7 +58,7 @@ public class GeneratorServiceImpl implements GeneratorService { @PersistenceContext private EntityManager em; - private final ColumnInfoDao columnInfoDao; + private final ColumnInfoRepository columnInfoDao; @Override public Object getTables() { diff --git a/eladmin-system/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfoHelper.java b/eladmin-system/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfoHelper.java index 66d64133..47669295 100644 --- a/eladmin-system/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfoHelper.java +++ b/eladmin-system/src/main/java/com/baomidou/mybatisplus/core/metadata/TableInfoHelper.java @@ -19,8 +19,8 @@ import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.core.config.GlobalConfig; import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator; import com.baomidou.mybatisplus.core.toolkit.*; -import me.zhengjie.mybatis.annotation.impl.TableFieldImp; -import me.zhengjie.mybatis.annotation.impl.TableIdImp; +import me.zhengjie.db.mybatis.TableFieldImp; +import me.zhengjie.db.mybatis.TableIdImp; import org.apache.ibatis.builder.MapperBuilderAssistant; import org.apache.ibatis.builder.StaticSqlSource; import org.apache.ibatis.executor.keygen.KeyGenerator;