今、Ebeanを用いてSQL文を発行し、複数列を検索できるように
したいのですが、上手く流れません。
何が原因なのでしょうか?
SQL文やデータの型の指定など間違ってはないと思うのですが??
お分かりの方、居られましたらご教示下さい。
●app/controller/Appliction.java
public Result Search_R(){ DynamicForm input = Form.form(); input = input.bindFromRequest("name"); String my_w = input.data().get("name"); my_w = "%" + my_w + "%"; System.out.println(my_w); String my_S = "select * from sample_data where name like " + my_w + " or title like " + my_w + " or memo like " + my_w ; RawSql rawSql = RawSqlBuilder.parse(my_S).columnMapping("id", "order.id").columnMapping("name", "order.name").columnMapping("title", "order.title").columnMapping("memo", "order.memo").create(); Query<SampleData> datalist = Ebean.find(SampleData.class); datalist.setRawSql(rawSql); List<SampleData> datas = datalist.findList(); return ok(Search2.render(datas)); }
●エラー内容
(idカラムがマッピングで見つかりません。[[*]]]の一つを期待している)
2019-03-22T05:19:03.851047+00:00 app[web.1]: [error] application - 2019-03-22T05:19:03.851051+00:00 app[web.1]: 2019-03-22T05:19:03.851054+00:00 app[web.1]: ! @7ba07ci7p - Internal server error, for (POST) [/Search_R] -> 2019-03-22T05:19:03.851055+00:00 app[web.1]: 2019-03-22T05:19:03.851060+00:00 app[web.1]: play.api.UnexpectedException: Unexpected exception[IllegalArgumentException: DB Column [id] not found in mapping. Expecting one of [[*]]] 2019-03-22T05:19:03.851069+00:00 app[web.1]: at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:289) 2019-03-22T05:19:03.851071+00:00 app[web.1]: at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:220) 2019-03-22T05:19:03.851073+00:00 app[web.1]: at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160) 2019-03-22T05:19:03.851075+00:00 app[web.1]: at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188) 2019-03-22T05:19:03.851076+00:00 app[web.1]: at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:100) 2019-03-22T05:19:03.851081+00:00 app[web.1]: at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100) 2019-03-22T05:19:03.851083+00:00 app[web.1]: at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99) 2019-03-22T05:19:03.851085+00:00 app[web.1]: at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344) 2019-03-22T05:19:03.851086+00:00 app[web.1]: at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343) 2019-03-22T05:19:03.851088+00:00 app[web.1]: at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 2019-03-22T05:19:03.851090+00:00 app[web.1]: Caused by: java.lang.IllegalArgumentException: DB Column [id] not found in mapping. Expecting one of [[*]] 2019-03-22T05:19:03.851091+00:00 app[web.1]: at com.avaje.ebean.RawSql$ColumnMapping.columnMapping(RawSql.java:505) 2019-03-22T05:19:03.851093+00:00 app[web.1]: at com.avaje.ebean.RawSqlBuilder.columnMapping(RawSqlBuilder.java:93) 2019-03-22T05:19:03.851094+00:00 app[web.1]: at controllers.Application.Search_R(Application.java:97) 2019-03-22T05:19:03.851096+00:00 app[web.1]: at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$10$$anonfun$apply$10.apply(Routes.scala:303) 2019-03-22T05:19:03.851098+00:00 app[web.1]: at router.Routes$$anonfun$routes$1$$anonfun$applyOrElse$10$$anonfun$apply$10.apply(Routes.scala:303) 2019-03-22T05:19:03.851099+00:00 app[web.1]: at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:157) 2019-03-22T05:19:03.851101+00:00 app[web.1]: at play.core.routing.HandlerInvokerFactory$$anon$4.resultCall(HandlerInvoker.scala:156) 2019-03-22T05:19:03.851103+00:00 app[web.1]: at play.core.routing.HandlerInvokerFactory$JavaActionInvokerFactory$$anon$14$$anon$3$$anon$1.invocation(HandlerInvoker.scala:136) 2019-03-22T05:19:03.851105+00:00 app[web.1]: at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:73) 2019-03-22T05:19:03.851107+00:00 app[web.1]: at play.http.HttpRequestHandler$1.call(HttpRequestHandler.java:54)
環境
eclipse
windows10
回答2件
あなたの回答
tips
プレビュー