Наше приложение Scala основано и построено на Play! фреймворк. Я создал случайное число, используя Scala Random. Это нужно использовать как уникальный ключ для каждой учетной записи в нашем приложении.Scala NumberFormatException при преобразовании строки в Long?
Однако, когда я иду, чтобы сохранить новую учетную запись в базу данных, он бросает java.lang.NumberFormatException
:
Дополнительной информации: Я преобразование строки с идентификатором аккаунта в Scala Лонг. Я просматриваю его с помощью объекта Squeryl, захватывая идентификатор, а затем преобразую его. Вот как это выглядит:
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)
Я typecasted уникальный ключ, как Scala Long
, так и String
, но он вызывает ту же ошибку. Любая идея относительно исправления?
Если вы получаете серию случайных чисел, они не обязательно будут уникальными. Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –
Дополнительная информация Вам нужна дополнительная информация? С вашего комментария, я даже попробовал его с java.UUID (очень уникальный), и он бросает ту же ошибку. – crockpotveggies
* «Какая еще информация вам нужна?» * В какой части S-S-C-C-E у вас возникли проблемы с пониманием? –