Play フレームワーク 1.2.3 で MySQL 5+ のストアド プロシージャを使用すると問題が発生します。私は私のアプローチが間違っていると推測しています - 私は呼び出し可能なステートメントを使用し、パラメータをストアドプロシージャに渡しています。このプロシージャは、出力変数を返すことは想定されていません (挿入に使用されるだけです)。ORM オプションへの切り替えを除いて、このセットアップをトラブルシューティングするにはどうすればよいでしょうか。
// con is connection to mysql
CallableStatement cs = this.con.prepareCall("{call sp_InsertTest(?,?,?,?,?,?)}");
cs.setString(1, user.value1);
cs.setString(2, user.value2);
cs.setString(3, user.value3);
cs.setString(4, user.value4);
cs.setString(5, user.value5);
cs.setString(6, user.value6);
//all values are strings
呼び出し可能な stmt で executeUpdate を実行すると、上記の最初の行からエラーがスローされます (スローされている場所から以下のログから行を削除しました)。
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:220)
at play.Invoker$Invocation.run(Invoker.java:265)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:200)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
どんな提案でも大歓迎です。