[Seasar-user:826] Re: S2Dao で集約関数
B isid.co.jp Yasuo Higa
higa
2004年 6月 29日 (火) 20:24:17 JST
<uy8m6lj21.wl%[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:825] S2Dao で集約関数" において、
"Takashi ARAKANE <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> 荒金と申します。
>
> # 最近になって、Seasarを使い始めたもので、Seasarの開発方針に
> # 相容れない内容でありましてもご容赦願います。
>
> S2Dao で、SQLの集約関数を使いたいのですが、Beanを戻り値とする
> 方法はないのでしょうか?
>
わざわざ、Beanを作る必要はありません。
マニュアルに出てくるgetCount()のようにします。
今回の例だと
EmployeeDao.java
public int getMax();
EmployeeDao_getMax.sql
SELECT MAX(sal) FROM emp
どうしてもBeanにマッピングしたいなら、
FuncMaxSalDaoを作成して
BEAN = FuncMaxSal.class
public FuncMaxSal getFuncMaxSal();
FuncMaxSalDao_getMax.sql
SELECT MAX(sal) as max_sal FROM emp
のようにするとBeanにマッピングできます。
BeanとDaoは1:1で考えます。
> example において、まず以下のように Beanを作成しました。
>
> ---------x---------x---------x---------x---------x---------x ここから
> package examples.dao;
>
> import java.io.Serializable;
>
> public class FuncMaxSal implements Serializable {
>
> public static final String TABLE = "EMP";
> public static final String maxSal_COLUMN = "max_sal";
> private int maxSal;
>
> public FuncMaxSal() {}
> public int getMaxSal() { return maxSal; }
> public void setMaxSal(int i) { maxSal = i; }
> }
> ---------x---------x---------x---------x---------x---------x ここまで
>
> インターフェース EmployeeDao に、以下を追加しました。
> ---------x---------x---------x---------x---------x---------x ここから
> public FuncMaxSal getMax();
> ---------x---------x---------x---------x---------x---------x ここまで
>
> EmployeeDao_getMax.sql は、以下のようになっています。
> ---------x---------x---------x---------x---------x---------x ここから
> SELECT MAX(sal) max_sal FROM emp
> ---------x---------x---------x---------x---------x---------x ここまで
>
> 最後に、EmployeeDaoClient にて、
> FuncMaxSal maxSal = dao.getMax();
> として実行したところ、ClassCastException が発生してしまいます。
>
> java.lang.ClassCastException
> at examples.dao.EmployeeDao$$EnhancerByCGLIB$$5827325b.getMax(<generated>)
> at examples.dao.EmployeeDaoClient.main(EmployeeDaoClient.java:36)
> Exception in thread "main"
>
> 根本的に、何か間違えていますでしょうか?
>
> --- [E-MAIL ADDRESS DELETED]
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内