gpt4 book ai didi

Mybatis 将属性映射到列

转载 作者:行者123 更新时间:2023-12-04 05:27:28 25 4
gpt4 key购买 nike

我有一个查询映射器,如下所示:

<select id="searchSomething" parameterType="SomeType" resultType="SomeOtherType">
select xxxxx
from T_XXXX
where 1=1
<if test="propertyName == 'userName'">
and USER_NAME = #{propertyValue}
</if>
<if test="propertyName == 'address'">
and ADDRESS = #{propertyValue}
</if>
<if test="propertyName == 'taskDate'">
and TASK_DATE = #{propertyValue}
</if>
<if test="propertyName == 'phone1'">
and PHONE_1 = #{propertyValue}
</if>
<if test="propertyName == 'phone2'">
and PHONE_2 = #{propertyValue}
</if>
...
</select>

有这么多的属性。我如何简单地将属性名称映射到列名称,如下所示:
<select id="searchSomething" parameterType="SomeType" resultType="SomeOtherType">
select xxxxx
from T_XXXX
where 1=1
and
<propertyToColumn property="propertyName" />
= #{propertyValue}
</select>

MyBatis 中是否有类似“propertyToColumn”的东西?

我在 iBatis 中找到了“insertColumnName”,是不是从 MyBatis 中删除了?

parameterType 是一个 java 类,如:
public class SomeType{
private String propertyName;
private String propertyValue;
... getters and setters
}

最佳答案

我认为如果您在代码中进行“参数列”转换并将结果列作为参数传递会更好。在这种情况下,您可以执行以下操作:

<select id="searchSomething" parameterType="SomeType" resultType="SomeOtherType">
select xxxxx
from T_XXXX
where 1=1
and
${propertyColumn} = #{propertyValue}
</select>

当然,您需要添加 属性列给你的 VO。

关于Mybatis 将属性映射到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com