> @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);
Clinton, after considering all of your insightful remarks altogether
I've come to the conclusion that the above option is ok, because:
1) I don't care about exposing Constraint (or ResultHandler) to upper
layers anymore. It's fine for me.
2) Now I'm not thinking in terms of full-fledged daos (although I must
say after your last post that my concept of dao was far simpler than
yours from the very beginning, not so distant from your beloved
mappers at all), so I don't expect full interface flexibility, no
matter what this thread's subject still asks for :).
3) Although redundant and repetitive, @Param anotations will be a very
convenient shortcut for the alternative procedures of
i. building a map: cumbersome, not type-safe thus goes against the
purpose of mapper interfaces.
ii. creating simple dtos for the mere purpose of passing parameters:
type-safe but yet more cumbersome.
Of course, for the usual single parameter signature, annotation will
be optional (or even forbidden).
Consider the difference:
i) using a map:
List<User> findCommonFriends(Map<String, User> userPair);
Map<String,User> userPair = new HashMap<String,User>();
userPair.put("user1", user1);
userPair.put("user2", user2);
ii) using a dto:
class UserPair {
private final User user1;
private final User user2;
public UserPair(User user1, User user2) {
this.user1 = user1;
this.user2 = user2;
}
public User getUser1() {
return user1;
}
public User getUser2() {
return user2;
}
}
List<User> findCommonFriends(UserPair userPair);
iii) using annotations
List<User> findCommonFriends(@Param("user1") User user1,
@Param("user2") User user2);
Of course there are a number of tricks than can be done to alleviate
the exuberance of (i) and (ii)
to a certain extent, but not even remotely close to (iii) briefness.
Have we a deal ;) ?
Best regards
--
Carlos
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]