"No ScalarType registered" doing where().in() with String array

561 views
Skip to first unread message

bootjack2k

unread,
Nov 11, 2011, 4:31:08 PM11/11/11
to Ebean ORM
Hi folks,

I'm new to ebean, using it under Scala, and so far I'm really enjoying
its simplicity and power. I ran into what is surely a newb problem,
trying to do a where().in() using an array of strings. Any
suggestions?


scala> Ebean.find( classOf[ Sku ] ).where().in( "code",
Array("hi")).findList

<sql summary='Sku' >
select t0.id as c0, t0.code as c1, t0.product_id as c2
from skus t0
where t0.code in (? )
</sql>

Nov 11, 2011 4:06:27 PM
com.avaje.ebeaninternal.server.transaction.log.JuliTransactionLogger
log
INFO: Trans[1020] select t0.id as c0, t0.code as c1, t0.product_id as
c2 from skus t0 where t0.code in (? )
javax.persistence.PersistenceException: No ScalarType registered for
class [Ljava.lang.String;
at
com.avaje.ebeaninternal.server.persist.Binder.bindObject(Binder.java:
183)
at
com.avaje.ebeaninternal.server.query.CQueryPredicates.bind(CQueryPredicates.java:
162)
at
com.avaje.ebeaninternal.server.query.CQuery.prepareBindExecuteQuery(CQuery.java:
403)
at
com.avaje.ebeaninternal.server.query.CQueryEngine.findMany(CQueryEngine.java:
197)
at
com.avaje.ebeaninternal.server.query.DefaultOrmQueryEngine.findMany(DefaultOrmQueryEngine.java:
96)
at
com.avaje.ebeaninternal.server.core.OrmQueryRequest.findList(OrmQueryRequest.java:
315)
at
com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:
1534)
at
com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:
945)
at
com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:
201)
at .<init>(<console>:16)
at .<clinit>(<console>)
at .<init>(<console>:11)
at .<clinit>(<console>)
at $print(<console>)
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 scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:
704)
at scala.tools.nsc.interpreter.IMain$Request$$anonfun
$14.apply(IMain.scala:920)
at scala.tools.nsc.interpreter.Line$$anonfun$1.apply$mcV
$sp(Line.scala:43)
at scala.tools.nsc.io.package$$anon$2.run(package.scala:25)
at java.lang.Thread.run(Thread.java:680)

bootjack2k

unread,
Nov 11, 2011, 4:57:26 PM11/11/11
to Ebean ORM
I forgot to mention that this is under 2.7.4. - Henry

Rob Bygrave

unread,
Nov 11, 2011, 7:37:22 PM11/11/11
to eb...@googlegroups.com

You could use a java List or java Collection.

I'd have to look at the code... but a possible fix would be to detect that it is a java Array being bound in the IN expression and handle that.

Cheers, Rob.

Reply all
Reply to author
Forward
0 new messages