0

私はH2データベースを初めて使用しますが、formatという名前の関数を実行しているときに特定の問題が発生しました。

public static String format(Double sumValue,Integer decimalValue){
 if(sumValue==null)
   return null;
 else{
      //format in particular order.
      }
}

sumValueがnull値を取得する可能性があります。

クエリを実行すると、次の例外がスローされます

SELECT format(commamount,2) as formatted FROM pshipcommdetail [90105-153] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) 
    at org.h2.message.DbException.get(DbException.java:156) 
    at org.h2.message.DbException.convertInvocation(DbException.java:295) 
    at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:405) 
    at org.h2.expression.JavaFunction.getValue(JavaFunction.java:38) 
    at org.h2.expression.Alias.getValue(Alias.java:35) 
    at org.h2.command.dml.Select.queryFlat(Select.java:519) 
    at org.h2.command.dml.Select.queryWithoutCache(Select.java:614) 
    at org.h2.command.dml.Query.query(Query.java:269) 
    at org.h2.command.dml.Query.query(Query.java:239) 
    at org.h2.command.dml.Query.query(Query.java:37) 
    at org.h2.command.CommandContainer.query(CommandContainer.java:78) 
    at org.h2.command.Command.executeQuery(Command.java:181) 
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:278) 
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:137) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
    at reports.functions.Format.format(Format.java:15) 
    at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:393) 

ドキュメントを調べたところ、引数はラッパークラスである必要があることがわかりました。そのため、doubleに変更しました。

誰かが実際の問題がどこにあるのかを理解するのを手伝ってくれませんか?

ありがとうございます

よろしくファニクマール

4

1 に答える 1

1

この質問は、H2メーリングリストで回答されました: http : //groups.google.com/group/h2-database/browse_thread/thread/a4105b923d79bf28#これはPhaniのコードのバグでした。

于 2011-04-13T08:50:59.023 に答える