From b21d5faebba533a7d0fe276c97d47a11178178f6 Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期日, 02 六月 2024 19:29:36 +0800
Subject: [PATCH] 优化代码生成主子表关联查询方式
---
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java | 2 +-
src/main/resources/vm/xml/mapper.xml.vm | 25 +++++++++++++++----------
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
index 3ecb09b..12a7c68 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
@@ -115,12 +115,12 @@
{
String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, "");
String captcha = redisCache.getCacheObject(verifyKey);
- redisCache.deleteObject(verifyKey);
if (captcha == null)
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
throw new CaptchaExpireException();
}
+ redisCache.deleteObject(verifyKey);
if (!code.equalsIgnoreCase(captcha))
{
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
diff --git a/src/main/resources/vm/xml/mapper.xml.vm b/src/main/resources/vm/xml/mapper.xml.vm
index 5b704e7..234ac67 100644
--- a/src/main/resources/vm/xml/mapper.xml.vm
+++ b/src/main/resources/vm/xml/mapper.xml.vm
@@ -12,12 +12,12 @@
#if($table.sub)
<resultMap id="${ClassName}${subClassName}Result" type="${ClassName}" extends="${ClassName}Result">
- <collection property="${subclassName}List" notNullColumn="sub_${subTable.pkColumn.columnName}" javaType="java.util.List" resultMap="${subClassName}Result" />
+ <collection property="${subclassName}List" ofType="${subClassName}" column="${subTableFkName}" select="select${subClassName}List" />
</resultMap>
<resultMap type="${subClassName}" id="${subClassName}Result">
#foreach ($column in $subTable.columns)
- <result property="${column.javaField}" column="sub_${column.columnName}" />
+ <result property="${column.javaField}" column="${column.columnName}" />
#end
</resultMap>
#end
@@ -63,15 +63,20 @@
<include refid="select${ClassName}Vo"/>
where ${pkColumn.columnName} = #{${pkColumn.javaField}}
#elseif($table.sub)
- select#foreach($column in $columns) a.$column.columnName#if($foreach.count != $columns.size()),#end#end,
- #foreach($column in $subTable.columns) b.$column.columnName as sub_$column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
-
- from ${tableName} a
- left join ${subTableName} b on b.${subTableFkName} = a.${pkColumn.columnName}
- where a.${pkColumn.columnName} = #{${pkColumn.javaField}}
+ select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end
+ from ${tableName}
+ where ${pkColumn.columnName} = #{${pkColumn.javaField}}
#end
</select>
-
+#if($table.sub)
+
+ <select id="select${subClassName}List" resultType="${subClassName}" resultMap="${subClassName}Result">
+ select#foreach ($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end
+ from ${subTableName}
+ where ${subTableFkName} = #{${subTableFkName}}
+ </select>
+#end
+
<insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
insert into ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -127,7 +132,7 @@
<insert id="batch${subClassName}">
insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values
- <foreach item="item" index="index" collection="list" separator=",">
+ <foreach item="item" index="index" collection="list" separator=",">
(#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end)
</foreach>
</insert>
--
Gitblit v1.9.3