Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
framework
schbrain-parent
Commits
9e9420f4
Commit
9e9420f4
authored
Aug 29, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
getMapByBizIds supports querying only required fields
parent
9536bb99
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
6 deletions
+42
-6
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java
...framework/autoconfigure/mybatis/base/BaseServiceImpl.java
+7
-2
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java
...framework/autoconfigure/mybatis/biz/BizIdColumnField.java
+4
-4
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/util/LambdaUtils.java
...ain/framework/autoconfigure/mybatis/util/LambdaUtils.java
+31
-0
No files found.
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/base/BaseServiceImpl.java
View file @
9e9420f4
...
@@ -12,6 +12,7 @@ import com.schbrain.framework.autoconfigure.mybatis.annotation.BizId;
...
@@ -12,6 +12,7 @@ import com.schbrain.framework.autoconfigure.mybatis.annotation.BizId;
import
com.schbrain.framework.autoconfigure.mybatis.biz.BizIdColumnField
;
import
com.schbrain.framework.autoconfigure.mybatis.biz.BizIdColumnField
;
import
com.schbrain.framework.autoconfigure.mybatis.biz.BizIdHelper
;
import
com.schbrain.framework.autoconfigure.mybatis.biz.BizIdHelper
;
import
com.schbrain.framework.autoconfigure.mybatis.exception.NoSuchRecordException
;
import
com.schbrain.framework.autoconfigure.mybatis.exception.NoSuchRecordException
;
import
com.schbrain.framework.autoconfigure.mybatis.util.LambdaUtils
;
import
org.apache.ibatis.binding.MapperMethod.ParamMap
;
import
org.apache.ibatis.binding.MapperMethod.ParamMap
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -123,8 +124,12 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> exte
...
@@ -123,8 +124,12 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> exte
if
(
isEmpty
(
bizIds
))
{
if
(
isEmpty
(
bizIds
))
{
return
emptyMap
();
return
emptyMap
();
}
}
// How to get the mapper column ?
String
bizIdColumnName
=
getBidColumnField
().
getColumnName
();
return
StreamUtils
.
toMap
(
listByBizIds
(
bizIds
),
entity
->
getBidColumnField
().
getValue
(
entity
),
mapper
);
List
<
T
>
dataList
=
query
()
.
select
(
bizIdColumnName
,
LambdaUtils
.
getColumnName
(
mapper
))
.
in
(
bizIdColumnName
,
bizIds
)
.
list
();
return
StreamUtils
.
toMap
(
dataList
,
entity
->
getBidColumnField
().
getValue
(
entity
),
mapper
);
}
}
@Override
@Override
...
...
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/biz/BizIdColumnField.java
View file @
9e9420f4
...
@@ -34,9 +34,9 @@ public class BizIdColumnField {
...
@@ -34,9 +34,9 @@ public class BizIdColumnField {
this
.
fieldType
=
bizIdField
.
getType
();
this
.
fieldType
=
bizIdField
.
getType
();
try
{
try
{
Lookup
lookup
=
privateLookupIn
(
entityClass
,
lookup
());
Lookup
lookup
=
privateLookupIn
(
entityClass
,
lookup
());
this
.
getter
=
lookup
.
findGetter
(
entityClass
,
bizIdField
.
getName
(),
fieldType
);
this
.
getter
=
lookup
.
unreflectGetter
(
bizIdField
);
this
.
setter
=
lookup
.
findSetter
(
entityClass
,
bizIdField
.
getName
(),
fieldType
);
this
.
setter
=
lookup
.
unreflectSetter
(
bizIdField
);
}
catch
(
NoSuchFieldException
|
IllegalAccessException
e
)
{
}
catch
(
IllegalAccessException
e
)
{
throw
new
BaseException
(
e
.
getMessage
(),
e
);
throw
new
BaseException
(
e
.
getMessage
(),
e
);
}
}
}
}
...
...
starters/mybatis-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/mybatis/util/LambdaUtils.java
0 → 100644
View file @
9e9420f4
package
com.schbrain.framework.autoconfigure.mybatis.util
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.support.SFunction
;
/**
* @author liaozan
* @since 2023/8/29
*/
public
class
LambdaUtils
{
public
static
<
T
>
String
getColumnName
(
SFunction
<
T
,
?>
column
)
{
LambdaQueryWrapperExt
<
T
>
query
=
new
LambdaQueryWrapperExt
<>();
return
query
.
columnToString
(
column
);
}
/**
* Extend LambdaQueryWrapper to expose columnToString method
*/
private
static
class
LambdaQueryWrapperExt
<
T
>
extends
LambdaQueryWrapper
<
T
>
{
private
static
final
long
serialVersionUID
=
943345355018736972L
;
@Override
protected
String
columnToString
(
SFunction
<
T
,
?>
column
)
{
return
super
.
columnToString
(
column
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment