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
8b1362eefa
commit
90941058ce
@ -1,7 +1,6 @@
|
|||||||
package com.github.yulichang.autoconfigure;
|
package com.github.yulichang.autoconfigure;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfiguration;
|
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfiguration;
|
||||||
import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector;
|
|
||||||
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
||||||
import com.github.yulichang.autoconfigure.conditional.MPJSqlInjectorCondition;
|
import com.github.yulichang.autoconfigure.conditional.MPJSqlInjectorCondition;
|
||||||
import com.github.yulichang.config.ConfigProperties;
|
import com.github.yulichang.config.ConfigProperties;
|
||||||
@ -15,6 +14,7 @@ import org.mybatis.spring.SqlSessionFactoryBean;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||||
@ -70,6 +70,7 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
* mybatis plus join 拦截器
|
* mybatis plus join 拦截器
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
public MPJInterceptor mpjInterceptor() {
|
public MPJInterceptor mpjInterceptor() {
|
||||||
return new MPJInterceptor();
|
return new MPJInterceptor();
|
||||||
}
|
}
|
||||||
@ -78,8 +79,8 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
* mybatis plus 拦截器配置
|
* mybatis plus 拦截器配置
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnBean(SqlSessionFactory.class)
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
public MPJInterceptorConfig mpjInterceptorConfig(List<SqlSessionFactory> sqlSessionFactoryList) {
|
public MPJInterceptorConfig mpjInterceptorConfig(@Autowired(required = false) List<SqlSessionFactory> sqlSessionFactoryList) {
|
||||||
return new MPJInterceptorConfig(sqlSessionFactoryList, properties.getBanner());
|
return new MPJInterceptorConfig(sqlSessionFactoryList, properties.getBanner());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +92,8 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
@MPJSqlInjectorCondition
|
@MPJSqlInjectorCondition
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
@ConditionalOnBean(ISqlInjector.class)
|
@ConditionalOnBean(ISqlInjector.class)
|
||||||
public MPJSqlInjector mpjSqlInjector(AbstractSqlInjector sqlInjector) {
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
|
public MPJSqlInjector mpjSqlInjector(ISqlInjector sqlInjector) {
|
||||||
logger.info("MPJSqlInjector init");
|
logger.info("MPJSqlInjector init");
|
||||||
return new MPJSqlInjector(sqlInjector);
|
return new MPJSqlInjector(sqlInjector);
|
||||||
}
|
}
|
||||||
@ -102,6 +104,7 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
@Bean
|
@Bean
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
@ConditionalOnMissingBean(ISqlInjector.class)
|
@ConditionalOnMissingBean(ISqlInjector.class)
|
||||||
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
public MPJSqlInjector mpjSqlInjectorOnMiss() {
|
public MPJSqlInjector mpjSqlInjectorOnMiss() {
|
||||||
logger.info("MPJSqlInjector init");
|
logger.info("MPJSqlInjector init");
|
||||||
return new MPJSqlInjector();
|
return new MPJSqlInjector();
|
||||||
@ -112,13 +115,14 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
public SpringContentUtils mpjSpringContent(MPJSpringContext springContext) {
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
|
public SpringContentUtils mpjSpringContent(@Autowired(required = false) MPJSpringContext springContext) {
|
||||||
return new SpringContentUtils(springContext);
|
return new SpringContentUtils(springContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
@ConditionalOnBean(SqlSessionFactory.class)
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
public static class MPJMappingConfig implements ApplicationListener<ApplicationReadyEvent> {
|
public static class MPJMappingConfig implements ApplicationListener<ApplicationReadyEvent> {
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("NullableProblems")
|
@SuppressWarnings("NullableProblems")
|
||||||
@ -128,7 +132,7 @@ public class MybatisPlusJoinAutoConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConditionalOnBean(SqlSessionFactory.class)
|
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})
|
||||||
public static class MPJSpringContext implements SpringContentUtils.SpringContext, ApplicationContextAware {
|
public static class MPJSpringContext implements SpringContentUtils.SpringContext, ApplicationContextAware {
|
||||||
|
|
||||||
private ApplicationContext applicationContext;
|
private ApplicationContext applicationContext;
|
||||||
|
@ -4,6 +4,7 @@ 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.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;
|
||||||
@ -48,8 +49,10 @@ public class MPJSqlInjector extends DefaultSqlInjector {
|
|||||||
public MPJSqlInjector() {
|
public MPJSqlInjector() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MPJSqlInjector(AbstractSqlInjector sqlInjector) {
|
public MPJSqlInjector(ISqlInjector sqlInjector) {
|
||||||
this.sqlInjector = sqlInjector;
|
if (Objects.nonNull(sqlInjector) && sqlInjector instanceof AbstractSqlInjector) {
|
||||||
|
this.sqlInjector = (AbstractSqlInjector) sqlInjector;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -107,14 +110,15 @@ public class MPJSqlInjector extends DefaultSqlInjector {
|
|||||||
"SelectPage");
|
"SelectPage");
|
||||||
list.removeIf(i -> methodList.contains(i.getClass().getSimpleName()) &&
|
list.removeIf(i -> methodList.contains(i.getClass().getSimpleName()) &&
|
||||||
Objects.equals(packageStr, i.getClass().getPackage().getName()));
|
Objects.equals(packageStr, i.getClass().getPackage().getName()));
|
||||||
addAll(list,getWrapperMethod());
|
addAll(list, getWrapperMethod());
|
||||||
addAll(list,getJoinMethod());
|
addAll(list, getJoinMethod());
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<AbstractMethod> getJoinMethod() {
|
private List<AbstractMethod> getJoinMethod() {
|
||||||
List<AbstractMethod> list = new ArrayList<>();
|
List<AbstractMethod> list = new ArrayList<>();
|
||||||
if (VersionUtils.compare(MybatisPlusVersion.getVersion(), "3.5.0") >= 0) {
|
if (VersionUtils.compare(MybatisPlusVersion.getVersion(), "3.5.0") >= 0) {
|
||||||
|
list.add(new DeleteJoin(SqlMethod.DELETE_JOIN.getMethod()));
|
||||||
list.add(new SelectJoinCount(SqlMethod.SELECT_JOIN_COUNT.getMethod()));
|
list.add(new SelectJoinCount(SqlMethod.SELECT_JOIN_COUNT.getMethod()));
|
||||||
list.add(new SelectJoinOne(SqlMethod.SELECT_JOIN_ONE.getMethod()));
|
list.add(new SelectJoinOne(SqlMethod.SELECT_JOIN_ONE.getMethod()));
|
||||||
list.add(new SelectJoinList(SqlMethod.SELECT_JOIN_LIST.getMethod()));
|
list.add(new SelectJoinList(SqlMethod.SELECT_JOIN_LIST.getMethod()));
|
||||||
@ -123,6 +127,7 @@ public class MPJSqlInjector extends DefaultSqlInjector {
|
|||||||
list.add(new SelectJoinMaps(SqlMethod.SELECT_JOIN_MAPS.getMethod()));
|
list.add(new SelectJoinMaps(SqlMethod.SELECT_JOIN_MAPS.getMethod()));
|
||||||
list.add(new SelectJoinMapsPage(SqlMethod.SELECT_JOIN_MAPS_PAGE.getMethod()));
|
list.add(new SelectJoinMapsPage(SqlMethod.SELECT_JOIN_MAPS_PAGE.getMethod()));
|
||||||
} else {
|
} else {
|
||||||
|
list.add(new DeleteJoin());
|
||||||
list.add(new SelectJoinCount());
|
list.add(new SelectJoinCount());
|
||||||
list.add(new SelectJoinOne());
|
list.add(new SelectJoinOne());
|
||||||
list.add(new SelectJoinList());
|
list.add(new SelectJoinList());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user