mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-11 00:02:22 +08:00
模块化项目
This commit is contained in:
parent
4d2aa1e4e7
commit
86c33d152d
41
mybatis-plus-join-annotation/pom.xml
Normal file
41
mybatis-plus-join-annotation/pom.xml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-root</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>mybatis-plus-join-annotation</artifactId>
|
||||||
|
<name>mybatis-plus-join-annotation</name>
|
||||||
|
|
||||||
|
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache License, Version 2.0</name>
|
||||||
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>mybatis-plus-join</id>
|
||||||
|
<name>yulichang</name>
|
||||||
|
<email>yu_lichang@qq.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</connection>
|
||||||
|
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
</project>
|
@ -10,6 +10,7 @@ import java.lang.annotation.*;
|
|||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
@Documented
|
@Documented
|
||||||
|
@SuppressWarnings("unused")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||||
public @interface EntityMapping {
|
public @interface EntityMapping {
|
@ -10,6 +10,7 @@ import java.lang.annotation.*;
|
|||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
@Documented
|
@Documented
|
||||||
|
@SuppressWarnings("unused")
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})
|
||||||
public @interface FieldMapping {
|
public @interface FieldMapping {
|
@ -7,6 +7,7 @@ package com.github.yulichang.annotation;
|
|||||||
* @author yulichang
|
* @author yulichang
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public @interface MPJMappingApply {
|
public @interface MPJMappingApply {
|
||||||
|
|
||||||
/**
|
/**
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.enums.SqlKeyword;
|
|||||||
* @author yulichang
|
* @author yulichang
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public @interface MPJMappingCondition {
|
public @interface MPJMappingCondition {
|
||||||
|
|
||||||
/**
|
/**
|
49
mybatis-plus-join-boot-starter/pom.xml
Normal file
49
mybatis-plus-join-boot-starter/pom.xml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-root</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>mybatis-plus-join-boot-starter</artifactId>
|
||||||
|
<name>mybatis-plus-join-boot-starter</name>
|
||||||
|
|
||||||
|
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache License, Version 2.0</name>
|
||||||
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>mybatis-plus-join</id>
|
||||||
|
<name>yulichang</name>
|
||||||
|
<email>yu_lichang@qq.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</connection>
|
||||||
|
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-core</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,82 @@
|
|||||||
|
package com.github.yulichang.autoconfigure;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfiguration;
|
||||||
|
import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector;
|
||||||
|
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
|
||||||
|
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
||||||
|
import com.github.yulichang.config.InterceptorConfig;
|
||||||
|
import com.github.yulichang.config.MappingConfig;
|
||||||
|
import com.github.yulichang.injector.MPJSqlInjector;
|
||||||
|
import com.github.yulichang.interceptor.MPJInterceptor;
|
||||||
|
import com.github.yulichang.toolkit.SpringContentUtils;
|
||||||
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
|
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
|
||||||
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.core.Ordered;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
@Configuration(proxyBeanMethods = false)
|
||||||
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
|
@ConditionalOnSingleCandidate(DataSource.class)
|
||||||
|
@EnableConfigurationProperties(MybatisPlusJoinProperties.class)
|
||||||
|
@AutoConfigureAfter({DataSourceAutoConfiguration.class, MybatisPlusLanguageDriverAutoConfiguration.class})
|
||||||
|
public class MybatisPlusJoinAutoConfiguration {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(MybatisPlusJoinAutoConfiguration.class);
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressWarnings("FieldCanBeLocal")
|
||||||
|
private final MybatisPlusJoinProperties properties;
|
||||||
|
|
||||||
|
|
||||||
|
public MybatisPlusJoinAutoConfiguration(MybatisPlusJoinProperties properties) {
|
||||||
|
this.properties = properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
|
public MPJInterceptor mpjInterceptor() {
|
||||||
|
return new MPJInterceptor();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnBean(SqlSessionFactory.class)
|
||||||
|
public InterceptorConfig interceptorConfig(List<SqlSessionFactory> sqlSessionFactoryList) {
|
||||||
|
return new InterceptorConfig(sqlSessionFactoryList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
|
@ConditionalOnMissingBean({DefaultSqlInjector.class, AbstractSqlInjector.class, ISqlInjector.class})
|
||||||
|
public MPJSqlInjector mpjSqlInjector() {
|
||||||
|
return new MPJSqlInjector();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
|
public MappingConfig mappingConfig() {
|
||||||
|
return new MappingConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
|
public SpringContentUtils springContentUtils() {
|
||||||
|
return new SpringContentUtils();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.github.yulichang.autoconfigure;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties for MyBatis.
|
||||||
|
*
|
||||||
|
* @author Eddú Meléndez
|
||||||
|
* @author Kazuki Shimizu
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ConfigurationProperties(prefix = "mybatis-plus-join")
|
||||||
|
public class MybatisPlusJoinProperties {
|
||||||
|
|
||||||
|
private Boolean banner = false;
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||||
|
com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration
|
49
mybatis-plus-join-core/pom.xml
Normal file
49
mybatis-plus-join-core/pom.xml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-root</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>mybatis-plus-join-core</artifactId>
|
||||||
|
<name>mybatis-plus-join-core</name>
|
||||||
|
|
||||||
|
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache License, Version 2.0</name>
|
||||||
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>mybatis-plus-join</id>
|
||||||
|
<name>yulichang</name>
|
||||||
|
<email>yu_lichang@qq.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</connection>
|
||||||
|
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-annotation</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -8,8 +8,6 @@ import org.apache.ibatis.logging.LogFactory;
|
|||||||
import org.apache.ibatis.plugin.Interceptor;
|
import org.apache.ibatis.plugin.Interceptor;
|
||||||
import org.apache.ibatis.plugin.InterceptorChain;
|
import org.apache.ibatis.plugin.InterceptorChain;
|
||||||
import org.apache.ibatis.session.SqlSessionFactory;
|
import org.apache.ibatis.session.SqlSessionFactory;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -19,9 +17,9 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author yulichang
|
* @author yulichang
|
||||||
*/
|
*/
|
||||||
@Configuration
|
//@Configuration
|
||||||
@ConditionalOnBean(SqlSessionFactory.class)
|
//@ConditionalOnBean(SqlSessionFactory.class)
|
||||||
@SuppressWarnings("unused")
|
//@SuppressWarnings("unused")
|
||||||
public class InterceptorConfig {
|
public class InterceptorConfig {
|
||||||
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
|||||||
package com.github.yulichang.config;
|
package com.github.yulichang.config;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
|
import com.baomidou.mybatisplus.core.metadata.MPJTableInfoHelper;
|
||||||
import com.github.yulichang.mapper.MPJTableMapperHelper;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||||
|
import com.github.yulichang.mapper.MPJTableMapperHelper;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.ApplicationListener;
|
import org.springframework.context.ApplicationListener;
|
||||||
import org.springframework.core.Ordered;
|
|
||||||
import org.springframework.core.annotation.Order;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关系映射配置
|
* 关系映射配置
|
||||||
@ -14,7 +12,7 @@ import org.springframework.core.annotation.Order;
|
|||||||
* @author yulichang
|
* @author yulichang
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
//@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
public class MappingConfig implements ApplicationListener<ApplicationReadyEvent> {
|
public class MappingConfig implements ApplicationListener<ApplicationReadyEvent> {
|
||||||
|
|
||||||
@Override
|
@Override
|
@ -2,27 +2,16 @@ package com.github.yulichang.injector;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.core.MybatisPlusVersion;
|
import com.baomidou.mybatisplus.core.MybatisPlusVersion;
|
||||||
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
|
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
|
||||||
import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector;
|
|
||||||
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
|
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
|
||||||
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
|
||||||
import com.baomidou.mybatisplus.core.injector.methods.*;
|
import com.baomidou.mybatisplus.core.injector.methods.*;
|
||||||
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
|
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
|
||||||
import com.github.yulichang.mapper.MPJTableMapperHelper;
|
import com.github.yulichang.mapper.MPJTableMapperHelper;
|
||||||
import com.github.yulichang.method.*;
|
import com.github.yulichang.method.*;
|
||||||
import com.github.yulichang.method.mp.SelectCount;
|
|
||||||
import com.github.yulichang.method.mp.SelectList;
|
|
||||||
import com.github.yulichang.method.mp.SelectMaps;
|
|
||||||
import com.github.yulichang.method.mp.SelectMapsPage;
|
|
||||||
import com.github.yulichang.method.mp.SelectObjs;
|
|
||||||
import com.github.yulichang.method.mp.SelectOne;
|
import com.github.yulichang.method.mp.SelectOne;
|
||||||
import com.github.yulichang.method.mp.SelectPage;
|
|
||||||
import org.apache.ibatis.builder.MapperBuilderAssistant;
|
import org.apache.ibatis.builder.MapperBuilderAssistant;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
||||||
import org.springframework.core.GenericTypeResolver;
|
import org.springframework.core.GenericTypeResolver;
|
||||||
import org.springframework.core.Ordered;
|
|
||||||
import org.springframework.core.annotation.Order;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -37,8 +26,8 @@ import static java.util.stream.Collectors.toList;
|
|||||||
* @author yulichang
|
* @author yulichang
|
||||||
* @see DefaultSqlInjector
|
* @see DefaultSqlInjector
|
||||||
*/
|
*/
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
//@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
@ConditionalOnMissingBean({DefaultSqlInjector.class, AbstractSqlInjector.class, ISqlInjector.class})
|
//@ConditionalOnMissingBean({DefaultSqlInjector.class, AbstractSqlInjector.class, ISqlInjector.class})
|
||||||
public class MPJSqlInjector extends DefaultSqlInjector {
|
public class MPJSqlInjector extends DefaultSqlInjector {
|
||||||
|
|
||||||
private static final List<String> METHOD_LIST = Arrays.asList("SelectOne", "SelectCount",
|
private static final List<String> METHOD_LIST = Arrays.asList("SelectOne", "SelectCount",
|
||||||
@ -109,12 +98,12 @@ public class MPJSqlInjector extends DefaultSqlInjector {
|
|||||||
private List<AbstractMethod> getSelectMethod() {
|
private List<AbstractMethod> getSelectMethod() {
|
||||||
List<AbstractMethod> list = new ArrayList<>();
|
List<AbstractMethod> list = new ArrayList<>();
|
||||||
list.add(new SelectOne());
|
list.add(new SelectOne());
|
||||||
list.add(new SelectCount());
|
list.add(new com.github.yulichang.method.mp.SelectCount());
|
||||||
list.add(new SelectMaps());
|
list.add(new com.github.yulichang.method.mp.SelectMaps());
|
||||||
list.add(new SelectMapsPage());
|
list.add(new com.github.yulichang.method.mp.SelectMapsPage());
|
||||||
list.add(new SelectObjs());
|
list.add(new com.github.yulichang.method.mp.SelectObjs());
|
||||||
list.add(new SelectList());
|
list.add(new com.github.yulichang.method.mp.SelectList());
|
||||||
list.add(new SelectPage());
|
list.add(new com.github.yulichang.method.mp.SelectPage());
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
@ -150,13 +150,13 @@ public class MPJInterceptor implements Interceptor {
|
|||||||
TableInfo tableInfo = TableInfoHelper.getTableInfo(resultType);
|
TableInfo tableInfo = TableInfoHelper.getTableInfo(resultType);
|
||||||
String id = ms.getId() + StringPool.DOT + Constants.MYBATIS_PLUS + StringPool.UNDERSCORE + resultType.getName();
|
String id = ms.getId() + StringPool.DOT + Constants.MYBATIS_PLUS + StringPool.UNDERSCORE + resultType.getName();
|
||||||
if (!(obj instanceof MPJLambdaWrapper) || Map.class.isAssignableFrom(resultType) ||
|
if (!(obj instanceof MPJLambdaWrapper) || Map.class.isAssignableFrom(resultType) ||
|
||||||
ReflectionKit.isPrimitiveOrWrapper(resultType) ||
|
com.github.yulichang.toolkit.ReflectionKit.isPrimitiveOrWrapper(resultType) ||
|
||||||
Collection.class.isAssignableFrom(resultType)) {
|
Collection.class.isAssignableFrom(resultType)) {
|
||||||
result.add(getDefaultResultMap(tableInfo, ms, resultType, id));
|
result.add(getDefaultResultMap(tableInfo, ms, resultType, id));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
MPJLambdaWrapper wrapper = (MPJLambdaWrapper) obj;
|
MPJLambdaWrapper wrapper = (MPJLambdaWrapper) obj;
|
||||||
Map<String, Field> fieldMap = ReflectionKit.getFieldMap(resultType);
|
Map<String, Field> fieldMap = com.github.yulichang.toolkit.ReflectionKit.getFieldMap(resultType);
|
||||||
List<SelectColumn> columnList = wrapper.getSelectColumns();
|
List<SelectColumn> columnList = wrapper.getSelectColumns();
|
||||||
//移除对多查询列,为了可重复使用wrapper
|
//移除对多查询列,为了可重复使用wrapper
|
||||||
columnList.removeIf(SelectColumn::isLabel);
|
columnList.removeIf(SelectColumn::isLabel);
|
41
mybatis-plus-join-test/pom.xml
Normal file
41
mybatis-plus-join-test/pom.xml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<groupId>com.github.yulichang</groupId>
|
||||||
|
<artifactId>mybatis-plus-join-root</artifactId>
|
||||||
|
<version>1.3.0</version>
|
||||||
|
</parent>
|
||||||
|
<artifactId>mybatis-plus-join-test</artifactId>
|
||||||
|
<name>mybatis-plus-join-test</name>
|
||||||
|
|
||||||
|
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>The Apache License, Version 2.0</name>
|
||||||
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>mybatis-plus-join</id>
|
||||||
|
<name>yulichang</name>
|
||||||
|
<email>yu_lichang@qq.com</email>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</connection>
|
||||||
|
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
||||||
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.github.yulichang;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Hello world!");
|
||||||
|
}
|
||||||
|
}
|
14
pom.xml
14
pom.xml
@ -3,9 +3,11 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.github.yulichang</groupId>
|
<groupId>com.github.yulichang</groupId>
|
||||||
<artifactId>mybatis-plus-join</artifactId>
|
<artifactId>mybatis-plus-join-root</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
<version>1.3.0</version>
|
<version>1.3.0</version>
|
||||||
<name>mybatis-plus-join</name>
|
<name>mybatis-plus-join-root</name>
|
||||||
|
|
||||||
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
<description>An enhanced toolkit of Mybatis-Plus to simplify development.</description>
|
||||||
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
<licenses>
|
<licenses>
|
||||||
@ -26,6 +28,14 @@
|
|||||||
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
<developerConnection>scm:git:https://github.com/yulichang/mybatis-plus-join.git</developerConnection>
|
||||||
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
<url>https://github.com/yulichang/mybatis-plus-join</url>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
|
<modules>
|
||||||
|
<module>mybatis-plus-join-boot-starter</module>
|
||||||
|
<module>mybatis-plus-join-core</module>
|
||||||
|
<module>mybatis-plus-join-annotation</module>
|
||||||
|
<module>mybatis-plus-join-test</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<github.global.server>github</github.global.server>
|
<github.global.server>github</github.global.server>
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
|
||||||
com.github.yulichang.interceptor.MPJInterceptor,\
|
|
||||||
com.github.yulichang.injector.MPJSqlInjector,\
|
|
||||||
com.github.yulichang.config.InterceptorConfig,\
|
|
||||||
com.github.yulichang.config.MappingConfig,\
|
|
||||||
com.github.yulichang.toolkit.SpringContentUtils
|
|
Loading…
x
Reference in New Issue
Block a user