Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
70a8ca4c
提交
70a8ca4c
编写于
4月 14, 2021
作者:
misaka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
insert into select中select租户列别名
上级
eca91206
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
52 行增加
和
1 行删除
+52
-1
MybatisConfiguration.java.ftl
...S_PKGPATH%/core/util/config/MybatisConfiguration.java.ftl
+1
-1
SaaSTenantSqlParser.java.ftl
...YS_PKGPATH%/core/util/config/SaaSTenantSqlParser.java.ftl
+51
-0
未找到文件。
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/MybatisConfiguration.java.ftl
浏览文件 @
70a8ca4c
...
...
@@ -71,7 +71,7 @@ public class MybatisConfiguration {
//
创建
SQL
解析器集合
List
<
ISqlParser
>
sqlParserList
=
new
ArrayList
<>();
//
创建租户
SQL
解析器
TenantSqlParser
tenantSqlParser
=
new
TenantSqlParser
();
SaaSTenantSqlParser
tenantSqlParser
=
new
SaaS
TenantSqlParser
();
//
设置租户处理器
tenantSqlParser
.
setTenantHandler
(
saaSTenantHandler
);
sqlParserList
.
add
(
tenantSqlParser
);
...
...
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/SaaSTenantSqlParser.java.ftl
0 → 100644
浏览文件 @
70a8ca4c
<#
ibiztemplate
>
TARGET
=
PSSYSTEM
</#
ibiztemplate
>
<#
if
sys
.
getSaaSMode
()==
4
>
package
${
pub
.
getPKGCodeName
()}.
core
.
util
.
config
;
import
com
.
baomidou
.
mybatisplus
.
core
.
toolkit
.
StringPool
;
import
com
.
baomidou
.
mybatisplus
.
extension
.
plugins
.
tenant
.
TenantSqlParser
;
import
net
.
sf
.
jsqlparser
.
schema
.
Column
;
import
net
.
sf
.
jsqlparser
.
schema
.
Table
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
FromItem
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
Join
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
PlainSelect
;
import
net
.
sf
.
jsqlparser
.
statement
.
select
.
SelectExpressionItem
;
import
java
.
util
.
List
;
public
class
SaaSTenantSqlParser
extends
TenantSqlParser
{
/**
*
处理
PlainSelect
*
*
@
param
plainSelect
ignore
*
@
param
addColumn
是否添加租户列
,
insert
into
select
语句中需要
*/
protected
void
processPlainSelect
(
PlainSelect
plainSelect
,
boolean
addColumn
)
{
FromItem
fromItem
=
plainSelect
.
getFromItem
();
if
(
fromItem
instanceof
Table
)
{
Table
fromTable
=
(
Table
)
fromItem
;
if
(
!this.getTenantHandler().doTableFilter(fromTable.getName())) {
plainSelect
.
setWhere
(
builderExpression
(
plainSelect
.
getWhere
(),
fromTable
));
if
(
addColumn
)
{
if
(
fromItem
.
getAlias
()
!= null)
plainSelect
.
getSelectItems
().
add
(
new
SelectExpressionItem
(
new
Column
(
fromItem
.
getAlias
().
getName
()
+
StringPool
.
DOT
+
this
.
getTenantHandler
().
getTenantIdColumn
())));
else
plainSelect
.
getSelectItems
().
add
(
new
SelectExpressionItem
(
new
Column
(
this
.
getTenantHandler
().
getTenantIdColumn
())));
}
}
}
else
{
processFromItem
(
fromItem
);
}
List
<
Join
>
joins
=
plainSelect
.
getJoins
();
if
(
joins
!= null && joins.size() > 0) {
joins
.
forEach
(
j
->
{
processJoin
(
j
);
processFromItem
(
j
.
getRightItem
());
});
}
}
}
</#
if
>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录