[Seasar-user:9089] Re: [S2DAO]MySQLのストアドプロシジャ
fujihara
[E-MAIL ADDRESS DELETED]
2007年 7月 11日 (水) 09:42:50 JST
fujiharaです。
言われた環境に直してやってみました。
ストアドプロシジャのnot foundはなくなりましたが
別のExceptionが出ています。
java.lang.NullPointerException
at
com.mysql.jdbc.StringUtils.indexOfIgnoreCaseRespectQuotes(StringUtils.java:948)
at
com.mysql.jdbc.DatabaseMetaData.getCallStmtParameterTypes(DatabaseMetaData.java:1253)
at
com.mysql.jdbc.DatabaseMetaData.getProcedureColumns(DatabaseMetaData.java:3628)
at
org.seasar.dao.handler.AbstractBasicProcedureHandler.initTypes(AbstractBasicProcedureHandler.java:132)
at
org.seasar.dao.handler.ProcedureHandlerImpl.initialize(ProcedureHandlerImpl.java:44)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupProcedureMethod(DaoMetaDataImpl.java:248)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethodByAnnotation(DaoMetaDataImpl.java:226)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:191)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:184)
at
org.seasar.dao.impl.DaoMetaDataImpl.setupSqlCommand(DaoMetaDataImpl.java:178)
at org.seasar.dao.impl.DaoMetaDataImpl.initialize(DaoMetaDataImpl.java:157)
at
org.seasar.dao.impl.DaoMetaDataFactoryImpl.createDaoMetaData(DaoMetaDataFactoryImpl.java:126)
at
org.seasar.dao.impl.DaoMetaDataFactoryImpl.getDaoMetaData(DaoMetaDataFactoryImpl.java:107)
at
org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:51)
at
org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:71)
at
jp.roaso.dao.SProcGetAccountIdDao$$EnhancedByS2AOP$$119dc16$$MethodInvocation$$getAccountID0.proceed(MethodInvocationClassGenerator.java)
at
jp.roaso.dao.SProcGetAccountIdDao$$EnhancedByS2AOP$$119dc16.getAccountID(SProcGetAccountIdDao$$EnhancedByS2AOP$$119dc16.java)
at jp.roaso.dao.AccmstDaoClient.main(AccmstDaoClient.java:42)
-----------------DAO------------------
/**
*
*/
package jp.roaso.dao;
import jp.roaso.entity.Seqaccntid;
import org.seasar.dao.annotation.tiger.Procedure;
import org.seasar.dao.annotation.tiger.S2Dao;
@S2Dao(bean=Seqaccntid.class)
public interface SProcGetAccountIdDao {
@Procedure("roaso_db.GET_ACCOUNT_ID")
public long getAccountID();
}
---------------------------------------
-------------ストアドファンクション-----------
CREATE FUNCTION GET_ACCOUNT_ID() RETURNS BIGINT
BEGIN
DECLARE seqId BIGINT;
UPDATE Seqaccntid SET member_seq = last_insert_id(member_seq) + 1;
SELECT member_seq INTO seqId FROM Seqaccntid;
RETURN seqId;
END
----------------------------------------
----------------エンティティ---------------
package jp.roaso.entity;
import org.seasar.dao.annotation.tiger.Column;
public class Seqaccntid {
private long memberSeq;
@Column("member_seq")
public long getMemberSeq() {
return memberSeq;
}
public void setMemberSeq(long memberSeq) {
this.memberSeq = memberSeq;
}
}
----------------------------------------
-------------DBのテーブル--------------
フィールド名 型 長さ NOT NULL
member_seq bigint 19 NOT NULL
--------------------------------------
大変申し訳ありませんがどこに問題があるのか
分かりません。
MySQL5.0.41ではストアドファンクションが使えるので
ファンクションにしていますがストアドプロシジャでないと
駄目ですか?
以上、ご迷惑おかけして申し訳ありませんが宜しくお願いします。
----- Original Message -----
From: "SETO Azusa" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, July 11, 2007 9:04 AM
Subject: [Seasar-user:9087] Re:[S2DAO]MySQLのストアドプロシジャ
> せとあずさです。
>
> ----- Original Message -----
> From: "fujihara" <[E-MAIL ADDRESS DELETED]>
> To: <[E-MAIL ADDRESS DELETED]>
> Sent: Tuesday, July 10, 2007 9:41 PM
> Subject: [Seasar-user:9084] Re:[S2DAO]MySQLのストアドプロシジャ
>
>
>> s2-dao-1.0.43.jar を s2-dao-1.0.45-20070705.050202-1.jarに
>
> すみません、S2Dao本体はこっちが最新でした。
> http://maven.seasar.org/maven2-snapshot/org/seasar/dao/s2-dao/1.0.45-SNAPSHOT/s2-dao-1.0.45-20070710.112519-2.jar
>
> よろしくお願いします。
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内