(我在 Teradata v12 上使用 MyBatis v3、Java SE v6、Tomcat v6 和 Spring v3。)
我当前项目的技术要求之一是使用 Teradata 中的查询分段功能。这是通过在需要时运行如下语句来完成的:
SET QUERY_BAND='someKey=someValue;' FOR TRANSACTION;
我想为我的所有电话设置一个查询带。但是,我不确定如何以干净且可重用的方式添加此功能,而不必将其添加到<select>
映射器文件中的每个语句中,如下所示:
<sql id="queryBand">
SET QUERY_BAND='k=v;' FOR TRANSACTION;
</sql>
<select ...>
<include refid="queryBand"/>
... some SQL performing a SELECT
</select>
我对上述问题的看法是:1)查询带的格式在我的所有映射器 XML 文件中都是相同的,除了 k 和 v,我想在每个<select>
(等)的基础上进行自定义。我不确定如何在不必传入 k 和 v 值的情况下进行此自定义,这会使我的映射器界面变得混乱。2)上面的代码中有重复让我感到不安。开发人员必须记住包含 queryBand SQL,有些人会在某个阶段忘记它(墨菲定律)。
有人可以指出我以更清洁的方式实现查询绑定的解决方案的方向吗?