Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
Mybatis Jpa Extra
提交
33ac78bf
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 搜索 >>
提交
33ac78bf
编写于
8月 05, 2023
作者:
M
MaxKey
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add findByIds and Split TestRunner
上级
3e54608a
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
339 addition
and
90 deletion
+339
-90
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/CurdTestRunner.java
...est/java/org/dromara/mybatis/jpa/test/CurdTestRunner.java
+5
-32
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FetchPageResultsTestRunner.java
.../dromara/mybatis/jpa/test/FetchPageResultsTestRunner.java
+2
-40
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FetchTestRunner.java
...st/java/org/dromara/mybatis/jpa/test/FetchTestRunner.java
+80
-0
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FindTestRunner.java
...est/java/org/dromara/mybatis/jpa/test/FindTestRunner.java
+76
-0
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/LogicDeleteTestRunner.java
...a/org/dromara/mybatis/jpa/test/LogicDeleteTestRunner.java
+57
-0
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/QueryTestRunner.java
...st/java/org/dromara/mybatis/jpa/test/QueryTestRunner.java
+2
-18
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/IJpaMapper.java
...tra/src/main/java/org/dromara/mybatis/jpa/IJpaMapper.java
+6
-0
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/JpaService.java
...tra/src/main/java/org/dromara/mybatis/jpa/JpaService.java
+69
-0
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/provider/FindProvider.java
...n/java/org/dromara/mybatis/jpa/provider/FindProvider.java
+38
-0
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
...a/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
+4
-0
未找到文件。
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/CurdTestRunner.java
浏览文件 @
33ac78bf
...
...
@@ -32,7 +32,7 @@ public class CurdTestRunner {
public
static
StudentsService
service
;
@Test
public
void
insert
()
throws
Exception
{
void
insert
()
throws
Exception
{
_logger
.
info
(
"insert..."
);
Students
student
=
new
Students
();
student
.
setStdNo
(
"10024"
);
...
...
@@ -48,7 +48,7 @@ public class CurdTestRunner {
}
@Test
public
void
merge
()
throws
Exception
{
void
merge
()
throws
Exception
{
_logger
.
info
(
"merge..."
);
Students
student
=
new
Students
();
student
.
setStdNo
(
"10024"
);
...
...
@@ -65,7 +65,7 @@ public class CurdTestRunner {
}
@Test
public
void
get
()
throws
Exception
{
void
get
()
throws
Exception
{
_logger
.
info
(
"get..."
);
Students
student
=
service
.
get
(
"317d5eda-927c-4871-a916-472a8062df23"
);
System
.
out
.
println
(
"Students "
+
student
);
...
...
@@ -90,13 +90,13 @@ public class CurdTestRunner {
}
@Test
public
void
remove
()
throws
Exception
{
void
remove
()
throws
Exception
{
_logger
.
info
(
"remove..."
);
service
.
remove
(
"921d3377-937a-4578-b1e2-92fb23b5e512"
);
}
@Test
public
void
batchDelete
()
throws
Exception
{
void
batchDelete
()
throws
Exception
{
_logger
.
info
(
"batchDelete..."
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
...
...
@@ -106,33 +106,6 @@ public class CurdTestRunner {
service
.
deleteBatch
(
idList
);
}
@Test
public
void
logicDelete
()
throws
Exception
{
_logger
.
info
(
"logicDelete..."
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
idList
.
add
(
"12b6ceb8-573b-4f01-ad85-cfb24cfa007c"
);
idList
.
add
(
"dafd5ba4-d2e3-4656-bd42-178841e610fe"
);
service
.
logicDelete
(
idList
);
}
@Test
public
void
batchDeleteByIds
()
throws
Exception
{
_logger
.
info
(
"batchDeleteByIds..."
);
service
.
deleteBatch
(
"2"
);
service
.
deleteBatch
(
"2,639178432667713536"
);
}
@Test
public
void
findAll
()
throws
Exception
{
_logger
.
info
(
"findAll..."
);
List
<
Students
>
allListStudents
=
service
.
findAll
();
for
(
Students
s
:
allListStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@BeforeAll
public
static
void
initSpringContext
(){
if
(
InitContext
.
context
!=
null
)
return
;
...
...
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FetchPageResultsTestRunner.java
浏览文件 @
33ac78bf
...
...
@@ -19,9 +19,7 @@ package org.dromara.mybatis.jpa.test;
import
java.util.List
;
import
org.dromara.mybatis.jpa.entity.JpaPage
;
import
org.dromara.mybatis.jpa.entity.JpaPageResults
;
import
org.dromara.mybatis.jpa.query.Query
;
import
org.dromara.mybatis.jpa.test.dao.service.StudentsService
;
import
org.dromara.mybatis.jpa.test.entity.Students
;
import
org.junit.jupiter.api.BeforeAll
;
...
...
@@ -34,7 +32,7 @@ public class FetchPageResultsTestRunner {
public
static
StudentsService
service
;
@Test
public
void
fetchPageResults
()
throws
Exception
{
void
fetchPageResults
()
throws
Exception
{
_logger
.
info
(
"fetchPageResults..."
);
Students
student
=
new
Students
();
...
...
@@ -54,43 +52,7 @@ public class FetchPageResultsTestRunner {
}
@Test
public
void
fetch
()
throws
Exception
{
_logger
.
info
(
"fetch..."
);
JpaPage
page
=
new
JpaPage
();
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
student
.
setStdAge
(
40
);
page
.
setPageSize
(
20
);
page
.
setPageable
(
true
);
JpaPageResults
<
Students
>
results
=
service
.
fetch
(
page
,
student
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
results
.
getRecords
(),
results
.
getTotalPage
(),
results
.
getTotal
(),
results
.
getPage
());
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
public
void
fetchByCondition
()
throws
Exception
{
_logger
.
info
(
"fetchByCondition..."
);
JpaPage
page
=
new
JpaPage
();
Query
condition
=
new
Query
().
eq
(
"stdMajor"
,
"政治"
).
and
().
gt
(
"STDAGE"
,
30
);
page
.
setPageSize
(
20
);
page
.
setPageable
(
true
);
JpaPageResults
<
Students
>
results
=
service
.
fetch
(
page
,
condition
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
results
.
getRecords
(),
results
.
getTotalPage
(),
results
.
getTotal
(),
results
.
getPage
());
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
public
void
fetchPageResultsByMapperId
()
throws
Exception
{
void
fetchPageResultsByMapperId
()
throws
Exception
{
_logger
.
info
(
"fetchPageResults by mapperId..."
);
Students
student
=
new
Students
();
...
...
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FetchTestRunner.java
0 → 100644
浏览文件 @
33ac78bf
/*
* Copyright [2022] [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.test
;
import
java.util.List
;
import
org.dromara.mybatis.jpa.entity.JpaPage
;
import
org.dromara.mybatis.jpa.entity.JpaPageResults
;
import
org.dromara.mybatis.jpa.query.Query
;
import
org.dromara.mybatis.jpa.test.dao.service.StudentsService
;
import
org.dromara.mybatis.jpa.test.entity.Students
;
import
org.junit.jupiter.api.BeforeAll
;
import
org.junit.jupiter.api.Test
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
FetchTestRunner
{
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
FetchTestRunner
.
class
);
public
static
StudentsService
service
;
@Test
void
fetch
()
throws
Exception
{
_logger
.
info
(
"fetch..."
);
JpaPage
page
=
new
JpaPage
();
Students
student
=
new
Students
();
student
.
setStdGender
(
"M"
);
student
.
setStdAge
(
40
);
page
.
setPageSize
(
20
);
page
.
setPageable
(
true
);
JpaPageResults
<
Students
>
results
=
service
.
fetch
(
page
,
student
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
results
.
getRecords
(),
results
.
getTotalPage
(),
results
.
getTotal
(),
results
.
getPage
());
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
void
fetchByCondition
()
throws
Exception
{
_logger
.
info
(
"fetchByCondition..."
);
JpaPage
page
=
new
JpaPage
();
Query
condition
=
new
Query
().
eq
(
"stdMajor"
,
"政治"
).
and
().
gt
(
"STDAGE"
,
30
);
page
.
setPageSize
(
20
);
page
.
setPageable
(
true
);
JpaPageResults
<
Students
>
results
=
service
.
fetch
(
page
,
condition
);
List
<
Students
>
rowsStudents
=
results
.
getRows
();
_logger
.
info
(
"records {} , totalPage {} , total {} , page {} "
,
results
.
getRecords
(),
results
.
getTotalPage
(),
results
.
getTotal
(),
results
.
getPage
());
for
(
Students
s
:
rowsStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@BeforeAll
public
static
void
initSpringContext
(){
if
(
InitContext
.
context
!=
null
)
return
;
service
=
new
InitContext
().
init
();
}
}
\ No newline at end of file
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/FindTestRunner.java
0 → 100644
浏览文件 @
33ac78bf
/*
* Copyright [2021] [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.test
;
import
java.sql.Types
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.dromara.mybatis.jpa.test.dao.service.StudentsService
;
import
org.dromara.mybatis.jpa.test.entity.Students
;
import
org.junit.jupiter.api.BeforeAll
;
import
org.junit.jupiter.api.Test
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
FindTestRunner
{
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
FindTestRunner
.
class
);
public
static
StudentsService
service
;
@Test
void
findAll
()
throws
Exception
{
_logger
.
info
(
"findAll..."
);
List
<
Students
>
allListStudents
=
service
.
findAll
();
for
(
Students
s
:
allListStudents
)
{
_logger
.
info
(
"Students "
+
s
);
}
}
@Test
void
findByIds
()
throws
Exception
{
_logger
.
info
(
"findByIds..."
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8c34448b-c65b-4a4e-a0da-83284d05f909"
);
idList
.
add
(
"b9111f83-d338-461d-8d46-f331087d5a42"
);
idList
.
add
(
"12b6ceb8-573b-4f01-ad85-cfb24cfa007c"
);
idList
.
add
(
"dafd5ba4-d2e3-4656-bd42-178841e610fe"
);
service
.
findByIds
(
idList
);
}
@Test
void
find
()
throws
Exception
{
_logger
.
info
(
"find by filter StdNo = '10024' or StdNo = '10004'"
);
List
<
Students
>
listStudents
=
service
.
find
(
" StdNo = ? or StdNo = ? "
,
new
Object
[]{
"10024"
,
"10004"
},
new
int
[]{
Types
.
VARCHAR
,
Types
.
INTEGER
}
);
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students {}"
,
s
);
}
}
@BeforeAll
public
static
void
initSpringContext
(){
if
(
InitContext
.
context
!=
null
)
return
;
service
=
new
InitContext
().
init
();
}
}
\ No newline at end of file
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/LogicDeleteTestRunner.java
0 → 100644
浏览文件 @
33ac78bf
/*
* Copyright [2021] [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.test
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.dromara.mybatis.jpa.test.dao.service.StudentsService
;
import
org.junit.jupiter.api.BeforeAll
;
import
org.junit.jupiter.api.Test
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
LogicDeleteTestRunner
{
private
static
final
Logger
_logger
=
LoggerFactory
.
getLogger
(
LogicDeleteTestRunner
.
class
);
public
static
StudentsService
service
;
@Test
void
logicDelete
()
throws
Exception
{
_logger
.
info
(
"logicDelete..."
);
List
<
String
>
idList
=
new
ArrayList
<
String
>();
idList
.
add
(
"8584804d-b5ac-45d2-9f91-4dd8e7a090a7"
);
idList
.
add
(
"ab7422e9-a91a-4840-9e59-9d911257c918"
);
idList
.
add
(
"12b6ceb8-573b-4f01-ad85-cfb24cfa007c"
);
idList
.
add
(
"dafd5ba4-d2e3-4656-bd42-178841e610fe"
);
service
.
logicDelete
(
idList
);
}
@Test
void
batchDeleteByIds
()
throws
Exception
{
_logger
.
info
(
"batchDeleteByIds..."
);
service
.
deleteBatch
(
"2"
);
service
.
deleteBatch
(
"2,639178432667713536"
);
}
@BeforeAll
public
static
void
initSpringContext
(){
if
(
InitContext
.
context
!=
null
)
return
;
service
=
new
InitContext
().
init
();
}
}
\ No newline at end of file
mybatis-jpa-extra-test/src/test/java/org/dromara/mybatis/jpa/test/QueryTestRunner.java
浏览文件 @
33ac78bf
...
...
@@ -17,7 +17,6 @@
package
org.dromara.mybatis.jpa.test
;
import
java.sql.Types
;
import
java.util.List
;
import
org.dromara.mybatis.jpa.query.Query
;
...
...
@@ -34,7 +33,7 @@ public class QueryTestRunner {
public
static
StudentsService
service
;
@Test
public
void
query
()
throws
Exception
{
void
query
()
throws
Exception
{
_logger
.
info
(
"find..."
);
List
<
Students
>
listStudents
=
service
.
query
(
new
Students
(
"10024"
));
for
(
Students
s
:
listStudents
)
{
...
...
@@ -44,7 +43,7 @@ public class QueryTestRunner {
//WHERE (stdMajor = '政治' and STDAGE > 30 and stdMajor in ( '政治' , '化学' ) or ( stdname = '周瑜' or stdname = '吕蒙' ) )
@Test
public
void
queryByCondition
()
throws
Exception
{
void
queryByCondition
()
throws
Exception
{
_logger
.
info
(
"query by condition ..."
);
List
<
Students
>
listStudents
=
service
.
query
(
new
Query
().
eq
(
"stdMajor"
,
"政治"
).
and
().
gt
(
"STDAGE"
,
30
).
and
().
in
(
"stdMajor"
,
new
Object
[]{
"政治"
,
"化学"
})
...
...
@@ -54,21 +53,6 @@ public class QueryTestRunner {
}
}
@Test
public
void
find
()
throws
Exception
{
_logger
.
info
(
"find by filter StdNo = '10024' or StdNo = '10004'"
);
List
<
Students
>
listStudents
=
service
.
find
(
" StdNo = ? or StdNo = ? "
,
new
Object
[]{
"10024"
,
"10004"
},
new
int
[]{
Types
.
VARCHAR
,
Types
.
INTEGER
}
);
for
(
Students
s
:
listStudents
)
{
_logger
.
info
(
"Students {}"
,
s
);
}
}
@BeforeAll
public
static
void
initSpringContext
(){
if
(
InitContext
.
context
!=
null
)
return
;
...
...
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/IJpaMapper.java
浏览文件 @
33ac78bf
...
...
@@ -44,6 +44,12 @@ public interface IJpaMapper<T> {
@SelectProvider
(
type
=
MapperSqlProvider
.
class
,
method
=
"findAll"
)
public
List
<
T
>
findAll
(
@Param
(
MapperMetadata
.
ENTITY_CLASS
)
Class
<?>
entityClass
);
@SelectProvider
(
type
=
MapperSqlProvider
.
class
,
method
=
"findByIds"
)
public
List
<
T
>
findByIds
(
@Param
(
MapperMetadata
.
ENTITY_CLASS
)
Class
<?>
entityClass
,
@Param
(
MapperMetadata
.
PARAMETER_ID_LIST
)
List
<
String
>
idList
,
@Param
(
MapperMetadata
.
PARAMETER_PARTITION_KEY
)
String
partitionKey
);
@SelectProvider
(
type
=
MapperSqlProvider
.
class
,
method
=
"fetchCount"
)
public
Integer
fetchCount
(
JpaPage
page
);
...
...
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/JpaService.java
浏览文件 @
33ac78bf
...
...
@@ -19,6 +19,7 @@ package org.dromara.mybatis.jpa;
import
java.lang.reflect.ParameterizedType
;
import
java.lang.reflect.Type
;
import
java.util.Collections
;
import
java.util.List
;
import
org.dromara.mybatis.jpa.entity.JpaEntity
;
import
org.dromara.mybatis.jpa.entity.JpaPage
;
...
...
@@ -329,6 +330,74 @@ public class JpaService <T extends JpaEntity> {
return
findOne
(
filter
,
null
,
null
);
}
/**
* find entity by id List
* @param idList
* @return List<T>
*/
public
List
<
T
>
findByIds
(
List
<
String
>
idList
)
{
try
{
logger
.
trace
(
"findByIds {}"
,
idList
);
List
<
T
>
findList
=
getMapper
().
findByIds
(
this
.
entityClass
,
idList
,
null
);
logger
.
trace
(
"findByIds count : {}"
,
findList
.
size
());
return
findList
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"findByIds Exception "
,
e
);
}
return
Collections
.
emptyList
();
}
/**
* find entity by id List
* @param idList
* @param partitionKey
* @return List<T>
*/
public
List
<
T
>
findByIds
(
List
<
String
>
idList
,
String
partitionKey
)
{
try
{
logger
.
trace
(
"findByIds {} , partitionKey {}"
,
idList
,
partitionKey
);
List
<
T
>
findList
=
getMapper
().
findByIds
(
this
.
entityClass
,
idList
,
partitionKey
);
logger
.
debug
(
"findByIds count : {}"
,
findList
.
size
());
return
findList
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"findByIds Exception "
,
e
);
}
return
Collections
.
emptyList
();
}
/**
* find entity by ids,split with ,
* @param ids
* @return List<T>
*/
public
List
<
T
>
findByIds
(
String
ids
)
{
List
<
String
>
idList
=
StringUtils
.
string2List
(
ids
,
","
);
return
findByIds
(
idList
);
}
/**
* find entity by ids,split with ,
* @param ids
* @param partitionKey
* @return
*/
public
List
<
T
>
findByIds
(
String
ids
,
String
partitionKey
)
{
List
<
String
>
idList
=
StringUtils
.
string2List
(
ids
,
","
);
return
findByIds
(
idList
,
partitionKey
);
}
/**
* find entity by ids , split with ,
* @param ids
* @param split
* @return List<T>
*/
public
List
<
T
>
findByIdsSplit
(
String
ids
,
String
split
)
{
List
<
String
>
idList
=
StringUtils
.
string2List
(
ids
,
StringUtils
.
isBlank
(
split
)?
","
:
split
);
return
findByIds
(
idList
);
}
/**
* query one entity by entity id
* @param id
...
...
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/provider/FindProvider.java
浏览文件 @
33ac78bf
...
...
@@ -21,6 +21,7 @@
package
org.dromara.mybatis.jpa.provider
;
import
java.sql.Types
;
import
java.util.ArrayList
;
import
java.util.Map
;
import
org.apache.ibatis.jdbc.SQL
;
...
...
@@ -116,4 +117,41 @@ public class FindProvider <T extends JpaEntity>{
return
findSql
;
}
public
String
findByIds
(
Map
<
String
,
Object
>
parametersMap
)
{
Class
<?>
parameterEntityClass
=
(
Class
<?>)
parametersMap
.
get
(
MapperMetadata
.
ENTITY_CLASS
);
MapperMetadata
.
buildColumnList
(
parameterEntityClass
);
ArrayList
<
String
>
parameterIds
=
(
ArrayList
<
String
>)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_ID_LIST
);
StringBuffer
keyValue
=
new
StringBuffer
();
for
(
String
value
:
parameterIds
)
{
if
(
value
.
trim
().
length
()
>
0
)
{
keyValue
.
append
(
",'"
).
append
(
value
).
append
(
"'"
);
logger
.
trace
(
"find by id {}"
,
value
);
}
}
String
idsValues
=
keyValue
.
substring
(
1
).
replaceAll
(
";"
,
""
);
//remove ;
String
partitionKeyValue
=
(
String
)
parametersMap
.
get
(
MapperMetadata
.
PARAMETER_PARTITION_KEY
);
FieldColumnMapper
partitionKeyColumnMapper
=
MapperMetadata
.
getPartitionKey
((
parameterEntityClass
).
getSimpleName
());
FieldColumnMapper
idFieldColumnMapper
=
MapperMetadata
.
getIdColumn
(
parameterEntityClass
.
getSimpleName
());
SQL
sql
=
MapperMetadata
.
buildSelect
(
parameterEntityClass
);
if
(
partitionKeyColumnMapper
!=
null
&&
partitionKeyValue
!=
null
)
{
sql
.
WHERE
(
"%s = #{%s} and %s in ( %s )"
.
formatted
(
partitionKeyColumnMapper
.
getColumnName
()
,
partitionKeyValue
,
idFieldColumnMapper
.
getColumnName
(),
idsValues
)
);
}
else
{
sql
.
WHERE
(
" %s in ( %s )"
.
formatted
(
idFieldColumnMapper
.
getColumnName
(),
idsValues
));
}
String
findByIdsSql
=
sql
.
toString
();
logger
.
trace
(
"Find by ids SQL \n{}"
,
findByIdsSql
);
return
findByIdsSql
;
}
}
mybatis-jpa-extra/src/main/java/org/dromara/mybatis/jpa/provider/MapperSqlProvider.java
浏览文件 @
33ac78bf
...
...
@@ -48,6 +48,10 @@ public class MapperSqlProvider <T extends JpaEntity>{
return
new
FindProvider
().
find
(
parametersMap
);
}
public
String
findByIds
(
Map
<
String
,
Object
>
parametersMap
)
{
return
new
FindProvider
().
findByIds
(
parametersMap
);
}
public
String
findAll
(
Map
<
String
,
Object
>
parametersMap
)
{
return
new
FindProvider
().
findAll
(
parametersMap
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录