Java 如何使用select子句中的参数化列映射iBATIS查询?

Java 如何使用select子句中的参数化列映射iBATIS查询?,java,sql,orm,persistence,ibatis,Java,Sql,Orm,Persistence,Ibatis,我想要一个方法,从数据库中特定表的列中查找特定值,其中列的名称作为参数传入。因此,Java方法将具有以下签名: public Integer getFoo(String column) throws DataAccessException; 我尝试对此查询进行的映射如下: <select id="getFoo" parameterClass="java.lang.String" resultClass="java.lang.Integer"> select min($col

我想要一个方法,从数据库中特定表的列中查找特定值,其中列的名称作为参数传入。因此,Java方法将具有以下签名:

public Integer getFoo(String column) throws DataAccessException;
我尝试对此查询进行的映射如下:

<select id="getFoo" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    select min($column$) from daily_statistics where $column$ &gt; 0
</select>
请注意,“FIRST_COLUMN”表示第一列的名称,即使错误发生在第二次调用上,而不是第一次调用上

我发现,即使多次调用,以下映射也不会出现错误:

<select id="getFoo" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    select min(ANY_COLUMN) from daily_statistics where $column$ &gt; 0
</select>

从daily_statistics中选择min(任意_列),其中$COLUMN$0

因此,问题似乎与select子句中使用参数化列有关。

在SQL查询中使用别名。这将解决将结果映射回java的问题

在SQL查询中使用别名。这应该可以解决将结果映射回java的问题。如果你想回答,我就接受。如果你不回答,我会在今天结束前回答自己。
<select id="getFoo" parameterClass="java.lang.String" resultClass="java.lang.Integer">
    select min(ANY_COLUMN) from daily_statistics where $column$ &gt; 0
</select>