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

oriwa [E-MAIL ADDRESS DELETED]
2009年 4月 7日 (火) 10:39:19 JST


こんにちわ。

例えば、下記の二つの表があったとき、
create table users (
user_id varchar(15) primary key,
user_pass varchar(15) not null,
user_name varchar(63)
);
create table role (
user_id varchar(15) not null,
user_role varchar(15) not null,
PRIMARY KEY(user_id, user_role),
FOREIGN KEY(user_id) REFERENCES users(user_id)
);
---
(1) ひとつのRoleに複数のuserが属するので、role<-OneToMany->users としたいのですが、s2-jdbc-genでは、users<-OneToMany->roleとして生成されます。
#Usersエンティティの方にroleListが作成される
外部キーが設定されている方がManyになるとの規則があるとのことですが、今回の場合は存在しないuser_idが登録されることを防ぐためにroleの方に外部キーを設定しました。
このような場合、正しくrole<-OneToMany->usersとするためにはどのようにすればいいでしょうか?
#Usersエンティティの方にrole, RoleエンティティにuserList
手修正すればいいでしょうか?(前述の規則は問題無い?)

---
(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も含まれてしまうかと思いますが、これを含めないようにするには、どのようにすればいいでしょうか?

以上、よろしくお願いします。


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