需要在mybatis查询中返回SINGLE列日期值

时间:2014-01-27 23:15:26

标签: java spring mybatis ibatis

我是IBatis / Mybatis以及ORM和Java的新手。 我有一个java mapper接口和相应的mapper xml。查询方法应返回的域对象类型称为SourceStatus。该对象包含几个属性和getter / setter等。我真的只想填充SourceStatus域对象的日期字段。我是否正确连接mybatis映射文件?

包含方法定义的Java Mapper文件:

public interface SupportSourceStatusMapper extends TPBMapper {
    SourceStatus getSupportStatus();
}

MyBatis XML映射文件:

<mapper namespace="com.dealersInc.dao.mapper.SupportSourceStatusMapper">

<select id="getSupportStatus" resultType="Date">
    SELECT MAX(s_valid_frm_dat)
        FROM deals.supports_contracts
</select>

</mapper>

SourceStatus域对象:

public class SourceStatus
{
    private long   contextKey;
    private String serviceName;
    private String contextName;
    private String contextRunType;
    private String contextLabel;
    private String contextStatus;
    private Date   cobDate;

getters/setters ()....
}

提前感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:2)

您可以为SourceStatus指定别名,但为了简单起见,指定完全限定的类名就足够了。请注意,列名映射到SourceStatus属性名称:

<select id="getSupportStatus" resultType="com.dealersInc.domain.SourceStatus">
    SELECT MAX(s_valid_frm_dat) AS cobDate
        FROM deals.supports_contracts
</select>

答案 1 :(得分:0)

您可以像这样映射结果:

<resultMap id="StatusResult" type="com.dealersInc.domain.SourceStatus">

        <result property="cobDate" column="max_date" />

        <result property="optionalyOtherClassParams" column="other_column_name" />

</resultMap>

<select id="getSupportStatus" resultMap="StatusResult">
    SELECT MAX(s_valid_frm_dat) AS max_date
        FROM deals.supports_contracts
</select>

有关详情,请参阅http://mybatis.github.io/mybatis-3/sqlmap-xml.html#Result_Maps