我是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 ()....
}
提前感谢您提供的任何帮助。
答案 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