[Seasar-user:17197] Re: 2 多対一関連と dto への詰め込みについての質問

Takafumi Yoshida [E-MAIL ADDRESS DELETED]
2009年 4月 7日 (火) 11:15:17 JST


いつもお世話になります。吉田@オプティクスです。

2009/04/07 10:39 oriwa <[E-MAIL ADDRESS DELETED]>:
> (2) 上記の2つの表をjoinして、user_id, user_name, user_roleだけをプロパティとして持つloginDtoに詰めたい場合、Serviceクラスに下記のようなメソッドを追加し、結果を詰め込むことを考えましたが、
> public loginDto getLoginUser(String userId){
>  return select().innerJoin("role").id(userId).getSingleResult();
> }
> この場合、user_passも含まれてしまうかと思いますが、これを含めないようにするには、どのようにすればいいでしょうか?

このServiceはUsersServiceだと思いますが
1.LoginDtoのInstanceTypeをセッションにする(@Componentタグ)
2.UsersServiceにLoginDtoをDIする
3.getLoginUserメソッド内で、2でDIしたLoginDtoに値をセットする
の手順でいいと思います。

3は単純に
public void getLoginUser(String userid) {
    Users user = select().innerJoin("role")....略
    loginDto.userid = user.user_id;
    ...略
}
LoginDtoを返す必要はないようにおもいますけど..?

他のActionやServiceでLoginDtoが必要であれば、DIしてやればOKです。


Seasar-user メーリングリストの案内