Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
75dd870d
M
Mybatis Jpa Extra
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
Mybatis Jpa Extra
9 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Mybatis Jpa Extra
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
75dd870d
编写于
7月 31, 2023
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
LogicDeleteProvider
上级
b139775f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
92 addition
and
50 deletion
+92
-50
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/DeleteProvider.java
...java/org/dromara/mybatis/jpa/provider/DeleteProvider.java
+1
-49
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/LogicDeleteProvider.java
...org/dromara/mybatis/jpa/provider/LogicDeleteProvider.java
+90
-0
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
...a/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
+1
-1
未找到文件。
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/DeleteProvider.java
浏览文件 @
75dd870d
/*
* Copyright [202
1
] [MaxKey of copyright http://www.maxkey.top]
* Copyright [202
3
] [MaxKey of copyright http://www.maxkey.top]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -114,53 +114,5 @@ public class DeleteProvider <T extends JpaEntity>{
logger
.
trace
(
"Delete SQL \n{}"
,
deleteSql
);
return
deleteSql
;
}
@SuppressWarnings
(
"unchecked"
)
public
String
logicDelete
(
Map
<
String
,
Object
>
parametersMap
)
{
Class
<?>
entityClass
=(
Class
<?>)
parametersMap
.
get
(
MapperMetadata
.
ENTITY_CLASS
);
MapperMetadata
.
buildColumnList
(
entityClass
);
String
tableName
=
MapperMetadata
.
getTableName
(
entityClass
);
ArrayList
<
String
>
idValues
=(
ArrayList
<
String
>)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_ID_LIST
);
StringBuffer
keyValue
=
new
StringBuffer
();
for
(
String
value
:
idValues
)
{
if
(
value
.
trim
().
length
()
>
0
)
{
keyValue
.
append
(
",'"
).
append
(
value
).
append
(
"'"
);
logger
.
trace
(
"logic delete by id {}"
,
value
);
}
}
String
keyValues
=
keyValue
.
substring
(
1
).
replaceAll
(
";"
,
""
);
//remove ;
FieldColumnMapper
logicColumnMapper
=
MapperMetadata
.
getLogicColumn
((
entityClass
).
getSimpleName
());
String
partitionKeyValue
=
(
String
)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_PARTITION_KEY
);
FieldColumnMapper
partitionKeyColumnMapper
=
MapperMetadata
.
getPartitionKey
((
entityClass
).
getSimpleName
());
FieldColumnMapper
idFieldColumnMapper
=
MapperMetadata
.
getIdColumn
(
entityClass
.
getSimpleName
());
SQL
sql
=
new
SQL
()
.
UPDATE
(
tableName
)
.
SET
(
" %s = %s "
.
formatted
(
logicColumnMapper
.
getColumnName
(),
logicColumnMapper
.
getColumnLogic
().
delete
()
)
);
if
(
partitionKeyColumnMapper
!=
null
&&
partitionKeyValue
!=
null
)
{
sql
.
WHERE
(
"%s = #{%s} and %s in ( %s )"
.
formatted
(
partitionKeyColumnMapper
.
getColumnName
()
,
partitionKeyValue
,
idFieldColumnMapper
.
getColumnName
(),
idFieldColumnMapper
.
getFieldName
())
);
}
else
{
sql
.
WHERE
(
" %s in ( %s )"
.
formatted
(
idFieldColumnMapper
.
getColumnName
(),
keyValues
));
}
String
deleteSql
=
sql
.
toString
();
MapperMetadata
.
sqlsMap
.
put
(
tableName
+
SQL_TYPE
.
LOGICDELETE_SQL
,
deleteSql
);
logger
.
trace
(
"logic Delete SQL \n{}"
,
deleteSql
);
return
deleteSql
;
}
}
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/LogicDeleteProvider.java
0 → 100644
浏览文件 @
75dd870d
/*
* Copyright [2023] [MaxKey of copyright http://www.maxkey.top]
*
* 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
org.dromara.mybatis.jpa.provider
;
import
java.util.ArrayList
;
import
java.util.Map
;
import
org.apache.ibatis.jdbc.SQL
;
import
org.dromara.mybatis.jpa.entity.JpaEntity
;
import
org.dromara.mybatis.jpa.metadata.FieldColumnMapper
;
import
org.dromara.mybatis.jpa.metadata.MapperMetadata
;
import
org.dromara.mybatis.jpa.metadata.MapperMetadata.SQL_TYPE
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* @author Crystal.Sea
*
*/
public
class
LogicDeleteProvider
<
T
extends
JpaEntity
>{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LogicDeleteProvider
.
class
);
@SuppressWarnings
(
"unchecked"
)
public
String
logicDelete
(
Map
<
String
,
Object
>
parametersMap
)
{
Class
<?>
entityClass
=(
Class
<?>)
parametersMap
.
get
(
MapperMetadata
.
ENTITY_CLASS
);
MapperMetadata
.
buildColumnList
(
entityClass
);
String
tableName
=
MapperMetadata
.
getTableName
(
entityClass
);
ArrayList
<
String
>
idValues
=(
ArrayList
<
String
>)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_ID_LIST
);
StringBuffer
keyValue
=
new
StringBuffer
();
for
(
String
value
:
idValues
)
{
if
(
value
.
trim
().
length
()
>
0
)
{
keyValue
.
append
(
",'"
).
append
(
value
).
append
(
"'"
);
logger
.
trace
(
"logic delete by id {}"
,
value
);
}
}
String
keyValues
=
keyValue
.
substring
(
1
).
replaceAll
(
";"
,
""
);
//remove ;
FieldColumnMapper
logicColumnMapper
=
MapperMetadata
.
getLogicColumn
((
entityClass
).
getSimpleName
());
String
partitionKeyValue
=
(
String
)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_PARTITION_KEY
);
FieldColumnMapper
partitionKeyColumnMapper
=
MapperMetadata
.
getPartitionKey
((
entityClass
).
getSimpleName
());
FieldColumnMapper
idFieldColumnMapper
=
MapperMetadata
.
getIdColumn
(
entityClass
.
getSimpleName
());
SQL
sql
=
new
SQL
()
.
UPDATE
(
tableName
)
.
SET
(
" %s = %s "
.
formatted
(
logicColumnMapper
.
getColumnName
(),
logicColumnMapper
.
getColumnLogic
().
delete
()
)
);
if
(
partitionKeyColumnMapper
!=
null
&&
partitionKeyValue
!=
null
)
{
sql
.
WHERE
(
"%s = #{%s} and %s in ( %s )"
.
formatted
(
partitionKeyColumnMapper
.
getColumnName
()
,
partitionKeyValue
,
idFieldColumnMapper
.
getColumnName
(),
idFieldColumnMapper
.
getFieldName
())
);
}
else
{
sql
.
WHERE
(
" %s in ( %s )"
.
formatted
(
idFieldColumnMapper
.
getColumnName
(),
keyValues
));
}
String
deleteSql
=
sql
.
toString
();
MapperMetadata
.
sqlsMap
.
put
(
tableName
+
SQL_TYPE
.
LOGICDELETE_SQL
,
deleteSql
);
logger
.
trace
(
"logic Delete SQL \n{}"
,
deleteSql
);
return
deleteSql
;
}
}
mybatis-jpa-extra-core/src/main/java/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
浏览文件 @
75dd870d
...
...
@@ -61,7 +61,7 @@ public class MapperSqlProvider <T extends JpaEntity>{
}
public
String
logicDelete
(
Map
<
String
,
Object
>
parametersMap
)
{
return
new
DeleteProvider
().
logicDelete
(
parametersMap
);
return
new
Logic
DeleteProvider
().
logicDelete
(
parametersMap
);
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录