не может комментировать,
Найден ответ, спасибо.
http://code.google.com/p/mybatis/wiki/HowToSelectMultipleParams
эта ссылка не работает, правильная на данный момент https://github.com/mybatis/mybatis-3/wiki/FAQ#how-do-i-use-multiple-parameters-in-a-mapper
копирование + вставка из этой вики
Отражение Java не предоставляет способа узнать имя параметра метода, поэтому MyBatis называет их по умолчанию, например: param1, param2 ..Если вы хотите дать им имя, используйте аннотацию @param следующим образом:
import org.apache.ibatis.annotations.Param;
public interface UserMapper {
User selectUser(@Param("username") String username, @Param("hashedPassword") String hashedPassword);
}
Теперь вы можете использовать их в своем xml следующим образом:
<select id=”selectUser” resultType=”User”>
select id, username, hashedPassword
from some_table
where username = #{username}
and hashedPassword = #{hashedPassword}
</select>
tl; dr
когда вы объявляете метод в вашем интерфейсе вместо стандартной структуры Java
Type methodName (
ParamType1 paramName1,
ParamType2 paramName2,
… ); (this is interface so no method body)
use (add @Param)
Type methodName (
@Param("name1 available in xml") ParamType1 paramName1,
@Param("name2 available in xml") ParamType2 paramName2,
…); (this is still interface so no method body)