私たちのアプリはScalaベースで、Play!フレームワーク。 Scala Randomを使用して乱数を生成しました。これは、アプリの各アカウントのユニークなキーとして使用することです。文字列をLongに変換するときのScala NumberFormatException?
私は、データベースに新しいアカウントを保存するために行くときしかし、それはjava.lang.NumberFormatException
をスロー:
詳細:私はScalaのロングにアカウントIDの文字列を変換しています。私はSquerylオブジェクトを使ってそれを探してIDをつかんで変換しています。
def findAccountByUnique(criteria: String) = {
from(DB.accounts)(a =>
where(a.uniqueKey == criteria)
select (a))
}
エラーのスタックトレースを::これはfindAccountByUniqueのように見えるものである
val account_id = Account.findAccountByUnique(account.uniqueKey).id.toLong
:
java.lang.NumberFormatException: For input string: "468b68c"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at java.lang.Long.parseLong(Unknown Source)
at scala.collection.immutable.StringLike$class.toLong(StringLike.scala:209)
at scala.collection.immutable.StringOps.toLong(StringOps.scala:31)
at controllers.Accounts$.save(Accounts.scala:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:496)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:257)
at play.Invoker$Invocation.run(Invoker.java:278)
at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:235)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
私はのように一意のキーを型変換しましたが、ここでは次のようになります。 Scala Long
とString
の両方が同じエラーをスローします。修正に関する考えはありますか?
一連の乱数を取得した場合、必ずしも一意になるとは限りません。もっと早く助けを求めるには、[SSCCE](http://sscce.org/)を投稿してください。 –
さらに多くの情報が必要ですか?あなたのコメントから、私はjava.UUID(非常にユニーク)でそれを試してみても、同じエラーをスローします。 – crockpotveggies
*「さらに多くの情報が必要ですか?」* S-S-C-C-Eのどの部分を理解しづらいですか? –