带有DTO的MyBatis映射器

时间:2017-03-03 13:40:43

标签: java mybatis mapper

在MyBatis映射器中使用DTO对象是否可行? 例如,替换方法findPolicy

的永无止境的签名
SELECT id
FROM   mytable
WHERE  b IN (SELECT   b
             FROM     mytable
             GROUP BY b
             HAVING   COUNT(DISTINCT a) > 1)

使用简单的DTO对象?

@Mapper
public interface PolicyMapper {
    List<Policy> findPolicy(
            @Param("partnerId") Long partnerId,
            @Param("policyNo") Long policyNo,
            @Param("policyStatus") Integer policyStatus,
            @Param("policyOpenDateFrom") Date policyOpenDateFrom,
            @Param("policyOpenDateTo") Date policyOpenDateTo,
            @Param("policyFinalDateFrom") Date policyFinalDateFrom,
            @Param("policyFinalDateTo") Date policyFinalDateTo,
            // ....

1 个答案:

答案 0 :(得分:0)

当然有:

List<Policy> findPolicy(PolicyFilterDto filter);

您可以直接访问PoliceFilterDto的属性。

当有多个参数时,必须命名参数。

List<Policy> findPolicy(@Param("filter") PolicyFilterDto filter, @Param("another") AnotherDto another);