I think your point about the "prioritizing" the rest of the application code, even at the expense of a bit of duplication in the interface, is a good one. And if that's the case, I think my preference would be for this syntax:
@Select("select * from employee where first_name = #{firstName} and last_name = #{lastName}) List<Employee> findEmployeesLike(@Param("firstName") String firstName, @Param("lastName") String lastName); The reason being, we'd need to mark the "special" parameters for pagination. Unless I introduce a class for that..... hmmm... what are your thoughts on the following two options: @Select("select * from employee where first_name = #{firstName} and last_name = #{lastName}) List<Employee> findEmployeesLike(@Param("firstName") String firstName, @Param("lastName") String lastName, @Offset int offset, @Limit, int limit); @Select("select * from employee where first_name = #{firstName} and last_name = #{lastName}) List<Employee> findEmployeesLike(@Param("firstName") String firstName, @Param("lastName") String lastName, Constraint offsetLimit); Where the latter would be used like: findEmployeesLike("C%", "B%", new Constraint(offset,limit)); I could detect the constraint type and treat all other parameters like SQL parameters. I could do the same with the ResultHandler... findEmployeesLike("C%", "B%", new Constraint(offset,limit), new ResultHandler(){...}); I think I answered my own question, I definitely like that better than the annotations (other than for the actual parameters themselves. Hmmm... I almost like that better than how I have it now. It does introduce an iBATIS type into your Mapper signature though... But then again ResultHandler is a dependency already. I suppose if I wanted to go crazy I could accept any class named Constraint that had two integer properties ... LOL :-) Thoughts? Cheers, Clinton On Sun, Aug 30, 2009 at 12:03 PM, <carlosjosep...@gmail.com> wrote: > > I really wish Java made this easier. One thought I had to submit to the > JCP > > was to add introspection on parameter names by having the compiler > > automatically create annotations for the parameter names. > > This was scheduled for java 6 but it was postponed, now it seems unlikely > that java 7 will introduce it either, so we have to wait for java 8 at > least. > > There is the paranamer library that follows an approach similar to the > one I described in my previous mail: it obtains the info parsing the > debug enabled bytecode with asm. > > Regards > -- > Carlos > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-java-unsubscr...@ibatis.apache.org > For additional commands, e-mail: user-java-h...@ibatis.apache.org > >