[Seasar-user:8668] Re: [S2Dao] Bean のプロパティに基本型以外を使う方法

Yasuo Higa [E-MAIL ADDRESS DELETED]
2007年 6月 26日 (火) 10:54:16 JST


ひがです。

> なかたです。
> 対応ありがとうございます。
> 
> うーん。そうなると Enum はバッチリですが、DB にString 以外で格納している
> 場合のユーザ定義型データクラスをどうするか、が残っています。
> 例えば今私のプロジェクトでいうと、権限レベルを int で管理しており、
> 業務に割り当てられた権限レベルとユーザの権限レベルなどから計算によって、
> 権限を持っているか判断しています。
> 権限クラスを用意し、DBに格納された値を保持し、権限レベルに権限を有するかの
> 判定メソッドを持っています。(判定機能を Authority クラスにカプセル化したい)
> Authority#valueOf(int) で権限クラスのインスタンスを生成し、
> user.getAuthority().available(int) で判定するような形です。
> データアクセスの結果 PropertyDescImpl#convertIfNeed に渡される arg は
> int であるため、String のコンストラクタや valueOf(String)
> を用意しても意味がありません。

Authority#valueOf(String)も用意し、
public static Authority valueOf(String arg) {
  return valueOf(Integer.parseInt(arg));
}
のように実装するというのはいかがでしょうか。
String#valueOf()もいろいろな型の引数に対応していますし、
そんなに不自然なことはないと思います。

それよりも、S2DaoがEnumをデータベースに格納できない気が。
そちらも考える必要がありそうです。

よろしくお願いします。

--
Yasuo Higa
[E-MAIL ADDRESS DELETED]



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