Наше приложение основано на Scala и построено на Play!фреймворк.Я сгенерировал случайное число с помощью Scala Random.Это используется в качестве уникального ключа для каждой учетной записи в нашем приложении.
Однако, когда я сохраняю новую учетную запись в базе данных, она выдает java.lang.NumberFormatException
:
Подробнее: Я конвертирую строку идентификатора аккаунта в Scala Long.Я искал его с помощью объекта Squeryl, захватывая ID, а затем конвертировал его.Вот как это выглядит:
val account_id = Account.findAccountByUnique(account.uniqueKey).id.toLong
Вот как выглядит findAccountByUnique:
def findAccountByUnique(criteria: String) = {
from(DB.accounts)(a =>
where(a.uniqueKey == criteria)
select (a))
}
Трассировка стека при ошибке:
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
, но он выдает ту же ошибку.Любая идея, как исправить?