SpringBoot + Doma2 で自動生成された DaoImpl に反抗された話

## 概要

SpringBoot + Doma2 で Web アプリケーションを作成していた．途中までは問題なく動作していたのに，ある時から Build が通らなくなった．

エラーを見ると，Doma によって自動生成された XxxDaoImpl クラスのメソッドが，私が指定した型を Int であるとみなしたり，Int と比較したりしようとしている．エラーログは記事の最後に添付．

## 環境

* SpringBoot: 2.6.1
* Java: 11.0.8
* Kotlin: 1.6.0
* Doma: 2.50.0

## 結論

自動生成された DaoImpl ファイルを一旦全部削除して Build したら治った．DaoImpl が反抗してきた時は，まず削除して Rebuild してみるといいかもしれない．

## エラーログ

`XxxDto` や `XxxDaoImpl`，`XxxStatus` などは自作クラス．

```
/Users/.../infrastructure/xxx/XxxDaoImpl.java:xxx: error: incompatible types: inference variable RESULT has incompatible equality constraints XxxDto, OptionalInt
            org.seasar.doma.jdbc.command.SelectCommand<xxx.dto.XxxDto> __command = __support.getCommandImplementors().createSelectCommand(__method2, __query, new org.seasar.doma.internal.jdbc.command.OptionalIntSingleResultHandler());
                                                                                                                                                                                                       ^
  where RESULT is a type-variable:
    RESULT extends Object declared in method <RESULT>createSelectCommand(Method,SelectQuery,ResultSetHandler<RESULT>)

/Users/.../infrastructure/xxx/XxxDaoImpl.java:xxx: error: incompatible types: inference variable RESULT has incompatible equality constraints XxxDto,OptionalInt
            org.seasar.doma.jdbc.command.SelectCommand<xxx.dto.XxxDto> __command = __support.getCommandImplementors().createSelectCommand(__method3, __query, new org.seasar.doma.internal.jdbc.command.OptionalIntSingleResultHandler());
                                                                                                                                                                                                       ^
  where RESULT is a type-variable:
    RESULT extends Object declared in method <RESULT>createSelectCommand(Method,SelectQuery,ResultSetHandler<RESULT>)
/Users/.../infrastructure/xxx/XxxDaoImpl.java:206: error: cannot find symbol
            __query.addParameter("status", java.lang.Integer.class, status.isPresent() ? status.getAsInt() : null);
                                                                          ^
  symbol:   method isPresent()
  location: variable status of type XxxStatus
/Users/.../infrastructure/xxx/XxxDaoImpl.java:206: error: cannot find symbol
            __query.addParameter("status", java.lang.Integer.class, status.isPresent() ? status.getAsInt() : null);
                                                                                               ^
  symbol:   method getAsInt()
  location: variable status of type XxxStatus
/Users/.../infrastructure/xxx/XxxDaoImpl.java:217: error: incompatible types: inference variable RESULT has incompatible equality constraints List<XxxDto>,List<OptionalInt>
            org.seasar.doma.jdbc.command.SelectCommand<java.util.List<xxx.dto.XxxDto>> __command = __support.getCommandImplementors().createSelectCommand(__method5, __query, new org.seasar.doma.internal.jdbc.command.OptionalIntResultListHandler());
                                                                                                                                                                                                                     ^
  where RESULT is a type-variable:
    RESULT extends Object declared in method <RESULT>createSelectCommand(Method,SelectQuery,ResultSetHandler<RESULT>)
```