Skip to content

Commit b83c0f2

Browse files
authored
Merge pull request mybatis#2837 from SeasonPanPan/Optimize-Configuration-checkResultMaps
Optimize the loop of resultMaps in Configuration
2 parents acb63bf + 5ae537c commit b83c0f2

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/main/java/org/apache/ibatis/session/Configuration.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -990,14 +990,14 @@ protected String extractNamespace(String statementId) {
990990
// Slow but a one time cost. A better solution is welcome.
991991
protected void checkGloballyForDiscriminatedNestedResultMaps(ResultMap rm) {
992992
if (rm.hasNestedResultMaps()) {
993-
for (Map.Entry<String, ResultMap> entry : resultMaps.entrySet()) {
994-
Object value = entry.getValue();
995-
if (value instanceof ResultMap) {
996-
ResultMap entryResultMap = (ResultMap) value;
993+
final String resultMapId = rm.getId();
994+
for (Object resultMapObject : resultMaps.values()) {
995+
if (resultMapObject instanceof ResultMap) {
996+
ResultMap entryResultMap = (ResultMap) resultMapObject;
997997
if (!entryResultMap.hasNestedResultMaps() && entryResultMap.getDiscriminator() != null) {
998998
Collection<String> discriminatedResultMapNames = entryResultMap.getDiscriminator().getDiscriminatorMap()
999999
.values();
1000-
if (discriminatedResultMapNames.contains(rm.getId())) {
1000+
if (discriminatedResultMapNames.contains(resultMapId)) {
10011001
entryResultMap.forceNestedResultMaps();
10021002
}
10031003
}
@@ -1009,8 +1009,7 @@ protected void checkGloballyForDiscriminatedNestedResultMaps(ResultMap rm) {
10091009
// Slow but a one time cost. A better solution is welcome.
10101010
protected void checkLocallyForDiscriminatedNestedResultMaps(ResultMap rm) {
10111011
if (!rm.hasNestedResultMaps() && rm.getDiscriminator() != null) {
1012-
for (Map.Entry<String, String> entry : rm.getDiscriminator().getDiscriminatorMap().entrySet()) {
1013-
String discriminatedResultMapName = entry.getValue();
1012+
for (String discriminatedResultMapName : rm.getDiscriminator().getDiscriminatorMap().values()) {
10141013
if (hasResultMap(discriminatedResultMapName)) {
10151014
ResultMap discriminatedResultMap = resultMaps.get(discriminatedResultMapName);
10161015
if (discriminatedResultMap.hasNestedResultMaps()) {

0 commit comments

Comments
 (0)