[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 メーリングリストの案内