[Seasar-user:825] S2Dao で集約関数
B araka.net Takashi ARAKANE
takashi
2004年 6月 29日 (火) 20:07:40 JST
荒金と申します。
# 最近になって、Seasarを使い始めたもので、Seasarの開発方針に
# 相容れない内容でありましてもご容赦願います。
S2Dao で、SQLの集約関数を使いたいのですが、Beanを戻り値とする
方法はないのでしょうか?
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 メーリングリストの案内