Reverse engineer psql schema (array of ENUM types)

120 views
Skip to first unread message

Jan Eriksson

unread,
Jan 13, 2017, 4:49:20 AM1/13/17
to ScalikeJDBC Users Group
I'm trying to get scalikejdbc to work with psql arrays of enum types:

CREATE TYPE Role AS ENUM ('student', 'teacher');

CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
password TEXT,
roles Role [],
  created  TIMESTAMPTZ NOT NULL DEFAULT current_timestamp
);

When i reverse engineer this with scalikejdbc

I get a case class like: 

case class Users(
id: Int,
username: String,
password: Option[String] = None,
roles: Option[Array[Any]] = None,
created: DateTime) {

def save()(implicit session: DBSession = Users.autoSession): Users = Users.save(this)(session)

def destroy()(implicit session: DBSession = Users.autoSession): Int = Users.destroy(this)(session)

}

When i try to compile i get an error about:

Implicit ParameterBinderFactory[Option[Array[Any]]] is missing.

So I create an Parameter binder:

implicit val arrayParameterBinderFactory: ParameterBinderFactory[Option[Array[Any]]] = ParameterBinderFactory { value => (stmt, idx) =>
value.foreach { v =>
val arr = stmt.getConnection.createArrayOf("varchar", v.map(_.asInstanceOf[AnyRef]))
stmt.setArray(idx, arr)

}
}

Now when i compile i get a really long error printout.. Any ideas? Of course i could use foregn keys to a role-table - but i have some other entities that i would like to model as enum arrays as well.



> compile
[info] Compiling 16 Scala sources to /Users/janne/projects/private/gboxserver/target/scala-2.11/classes...
exception when typing rs.get(u.<roles: error>)/class scala.reflect.internal.Trees$Apply
not enough arguments for method get: (columnLabel: String, implicit evidence$2: scalikejdbc.TypeBinder)Object.
Unspecified value parameter evidence$2. in file /Users/janne/projects/private/gboxserver/src/main/scala/se/oobo/gbox/server/models/Users.scala
scala.reflect.internal.Types$TypeError: not enough arguments for method get: (columnLabel: String, implicit evidence$2: scalikejdbc.TypeBinder)Object.
Unspecified value parameter evidence$2.
	at scala.tools.nsc.typechecker.Contexts$ThrowingReporter.handleError(Contexts.scala:1390)
	at scala.tools.nsc.typechecker.Contexts$ContextReporter.issue(Contexts.scala:1242)
	at scala.tools.nsc.typechecker.Contexts$Context.issue(Contexts.scala:573)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$duplErrorTree$1(Typers.scala:3214)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$tryNamesDefaults$1$4.apply(Typers.scala:3442)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$tryNamesDefaults$1$4.apply(Typers.scala:3442)
	at scala.reflect.internal.Trees$TreeContextApiImpl.orElse(Trees.scala:104)
	at scala.tools.nsc.typechecker.Typers$Typer.tryNamesDefaults$1(Typers.scala:3442)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3453)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4545)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4579)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5342)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:3164)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$class.typedArgWithFormal$1(PatternTypers.scala:112)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$$anonfun$2.apply(PatternTypers.scala:115)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$$anonfun$2.apply(PatternTypers.scala:115)
	at scala.runtime.Tuple2Zipped$$anonfun$map$extension$1.apply(Tuple2Zipped.scala:46)
	at scala.runtime.Tuple2Zipped$$anonfun$map$extension$1.apply(Tuple2Zipped.scala:44)
	at scala.collection.immutable.List.foreach(List.scala:381)
	at scala.runtime.Tuple2Zipped$.map$extension(Tuple2Zipped.scala:44)
	at scala.tools.nsc.typechecker.PatternTypers$PatternTyper$class.typedArgsForFormals(PatternTypers.scala:115)
	at scala.tools.nsc.typechecker.Typers$Typer.typedArgsForFormals(Typers.scala:111)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$handleMonomorphicCall$1(Typers.scala:3470)
	at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:3495)
	at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4545)
	at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4579)
	at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5342)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5359)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
	at scala.tools.nsc.typechecker.Typers$Typer.transformedOrTyped(Typers.scala:5604)
	at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2208)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5307)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5451)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3047)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
	at scala.collection.immutable.List.loop$1(List.scala:173)
	at scala.collection.immutable.List.mapConserve(List.scala:189)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151)
	at scala.tools.nsc.typechecker.Typers$Typer.typedTemplate(Typers.scala:1921)
	at scala.tools.nsc.typechecker.Typers$Typer.typedClassDef(Typers.scala:1762)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5308)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
	at scala.tools.nsc.typechecker.Typers$Typer.typedByValueExpr(Typers.scala:5451)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedStat$1(Typers.scala:3047)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
	at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$65.apply(Typers.scala:3151)
	at scala.collection.immutable.List.loop$1(List.scala:173)
	at scala.collection.immutable.List.mapConserve(List.scala:189)
	at scala.tools.nsc.typechecker.Typers$Typer.typedStats(Typers.scala:3151)
	at scala.tools.nsc.typechecker.Typers$Typer.typedPackageDef$1(Typers.scala:5014)
	at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5311)
	at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5358)
	at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5395)
	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5422)
	at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5369)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5373)
	at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5447)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$transform$2.apply(Erasure.scala:1167)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anonfun$transform$2.apply(Erasure.scala:1163)
	at scala.reflect.internal.SymbolTable.enteringPhase(SymbolTable.scala:235)
	at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:256)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:1163)
	at scala.tools.nsc.transform.Erasure$ErasureTransformer.transform(Erasure.scala:745)
	at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:147)
	at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply$mcV$sp(Global.scala:440)
	at scala.tools.nsc.Global$GlobalPhase.withCurrentUnit(Global.scala:431)
	at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:440)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:398)
	at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:398)
	at scala.collection.Iterator$class.foreach(Iterator.scala:742)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1194)
	at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:398)
	at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1501)
	at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1486)
	at scala.tools.nsc.Global$Run.compileSources(Global.scala:1481)
	at scala.tools.nsc.Global$Run.compile(Global.scala:1582)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:116)
	at xsbt.CachedCompiler0.run(CompilerInterface.scala:95)
	at xsbt.CompilerInterface.run(CompilerInterface.scala:26)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:101)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:47)
	at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
	at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:51)
	at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:51)
	at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:51)
	at sbt.compiler.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:75)
	at sbt.compiler.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:50)
	at sbt.compiler.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:65)
	at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
	at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:66)
	at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:64)
	at sbt.inc.IncrementalCommon.cycle(IncrementalCommon.scala:31)
	at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:62)
	at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:61)
	at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:89)
	at sbt.inc.Incremental$.compile(Incremental.scala:61)
	at sbt.inc.IncrementalCompile$.apply(Compile.scala:54)
	at sbt.compiler.IC$.compileInternal(IncrementalCompiler.scala:160)
	at sbt.compiler.IC$.incrementalCompile(IncrementalCompiler.scala:138)
	at sbt.Compiler$.compile(Compiler.scala:128)
	at sbt.Compiler$.compile(Compiler.scala:114)
	at sbt.Defaults$.sbt$Defaults$$compileIncrementalTaskImpl(Defaults.scala:814)
	at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:805)
	at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:803)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:235)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
[error]
[error]   unrecoverable error
[error]      while compiling: /Users/janne/projects/private/gboxserver/src/main/scala/se/oobo/gbox/server/models/Users.scala
[error]         during phase: globalPhase=erasure, enteringPhase=posterasure
[error]      library version: version 2.11.7
[error]     compiler version: version 2.11.7
[error]   reconstructed args: -encoding utf8 -deprecation -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/classes:/Users/janne/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar -classpath /Users/janne/projects/private/gboxserver/target/scala-2.11/classes:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http_2.11/jars/akka-http_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http-core_2.11/jars/akka-http-core_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-parsing_2.11/jars/akka-parsing_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-stream_2.11/jars/akka-stream_2.11-2.4.16.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/jars/akka-actor_2.11-2.4.16.jar:/Users/janne/.ivy2/cache/com.typesafe/config/bundles/config-1.3.0.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.11/bundles/scala-java8-compat_2.11-0.7.0.jar:/Users/janne/.ivy2/cache/org.reactivestreams/reactive-streams/jars/reactive-streams-1.0.0.jar:/Users/janne/.ivy2/cache/com.typesafe/ssl-config-core_2.11/bundles/ssl-config-core_2.11-0.2.1.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.11/bundles/scala-parser-combinators_2.11-1.0.4.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http-spray-json_2.11/jars/akka-http-spray-json_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/io.spray/spray-json_2.11/bundles/spray-json_2.11-1.3.2.jar:/Users/janne/.ivy2/local/se.oobo.akka/akka-http-jwt_2.11/1.0-SNAPSHOT/jars/akka-http-jwt_2.11.jar:/Users/janne/.ivy2/cache/com.jason-goodwin/authentikat-jwt_2.11/jars/authentikat-jwt_2.11-0.4.1.jar:/Users/janne/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.9.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-native_2.11/jars/json4s-native_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-core_2.11/jars/json4s-core_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-ast_2.11/jars/json4s-ast_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.6.jar:/Users/janne/.ivy2/cache/org.scala-lang/scalap/jars/scalap-2.11.0.jar:/Users/janne/.ivy2/cache/org.scala-lang/scala-compiler/jars/scala-compiler-2.11.0.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-xml_2.11/bundles/scala-xml_2.11-1.0.1.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-jackson_2.11/jars/json4s-jackson_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.3.1.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.3.0.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.3.1.jar:/Users/janne/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.22.jar:/Users/janne/.ivy2/cache/net.codingwell/scala-guice_2.11/jars/scala-guice_2.11-4.1.0.jar:/Users/janne/.ivy2/cache/com.google.inject/guice/jars/guice-4.1.0.jar:/Users/janne/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:/Users/janne/.ivy2/cache/aopalliance/aopalliance/jars/aopalliance-1.0.jar:/Users/janne/.ivy2/cache/com.google.guava/guava/bundles/guava-19.0.jar:/Users/janne/.ivy2/cache/com.google.inject.extensions/guice-multibindings/jars/guice-multibindings-4.1.0.jar:/Users/janne/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-3.0.1.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc_2.11/jars/scalikejdbc_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-core_2.11/jars/scalikejdbc-core_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.11.8.jar:/Users/janne/.ivy2/cache/org.apache.commons/commons-dbcp2/jars/commons-dbcp2-2.1.1.jar:/Users/janne/.ivy2/cache/org.apache.commons/commons-pool2/jars/commons-pool2-2.4.2.jar:/Users/janne/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.2.jar:/Users/janne/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.9.5.jar:/Users/janne/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.8.1.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-interpolation_2.11/jars/scalikejdbc-interpolation_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-interpolation-macro_2.11/jars/scalikejdbc-interpolation-macro_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-config_2.11/jars/scalikejdbc-config_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.7.jar:/Users/janne/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.1.7.jar:/Users/janne/.ivy2/cache/org.postgresql/postgresql/bundles/postgresql-9.4.1212.jar:/Users/janne/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.4.jar:/Users/janne/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.5.4.jar:/Users/janne/.ivy2/cache/org.mindrot/jbcrypt/jars/jbcrypt-0.3m.jar -unchecked
[error]
[error]   last tree to typer: TypeTree(class Option)
[error]        tree position: line 32 of /Users/janne/projects/private/gboxserver/src/main/scala/se/oobo/gbox/server/models/Users.scala
[error]             tree tpe: Option
[error]               symbol: (sealed abstract) class Option in package scala
[error]    symbol definition: sealed abstract class Option extends Product with Serializable (a ClassSymbol)
[error]       symbol package: scala
[error]        symbol owners: class Option
[error]            call site: method apply in object Users in package models
[error]
[error] == Source file context for tree position ==
[error]
[error]     29     id = rs.get(u.id),
[error]     30     username = rs.get(u.username),
[error]     31     password = rs.get(u.password),
[error]     32     roles = rs.get(u.roles),
[error]     33     created = rs.get(u.created)
[error]     34   )
[error]     35
exception when typing new se.oobo.gbox.server.models.Users(rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("id")), scalikejdbc.this.TypeBinder.int()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("username")), scalikejdbc.this.TypeBinder.string()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("password")), scalikejdbc.this.TypeBinder.option(scalikejdbc.this.TypeBinder.string())), rs.get(u.<roles: error>), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("created")), scalikejdbc.this.TypeBinder.jodaDateTime()))
exception when typing def apply(u: scalikejdbc.SQLSyntaxSupportFeature#ResultNameSQLSyntaxProvider, rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("id")), scalikejdbc.this.TypeBinder.int()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("username")), scalikejdbc.this.TypeBinder.string()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("password")), scalikejdbc.this.TypeBinder.option(scalikejdbc.this.TypeBinder.string())), rs.get(u.<roles: error>), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("created")), scalikejdbc.this.TypeBinder.jodaDateTime()))
exception when typing object Users extends Object with scalikejdbc.SQLSyntaxSupportFeature#SQLSyntaxSupport with se.oobo.gbox.server.models.ImplicitBinders with Serializable {
  def <init>(): se.oobo.gbox.server.models.Users.type = {
    Users.super.<init>();
    Users.this./*SQLSyntaxSupport$class*/$init$();
    Users.this./*ImplicitBinders$class*/$init$();
    ()
  };
  private[this] val schemaName: Some = new Some("gbox");
  override <stable> <accessor> def schemaName(): Some = Users.this.schemaName;
  private[this] val tableName: String = "users";
  override <stable> <accessor> def tableName(): String = Users.this.tableName;
  private[this] val columns: Seq = collection.this.Seq.apply(scala.this.Predef.wrapRefArray(Array[String]{"id", "username", "password", "roles", "created"}));
  override <stable> <accessor> def columns(): Seq = Users.this.columns;
  def apply(u: scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider, rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.this.apply(u.resultName(), rs);
  def apply(u: scalikejdbc.SQLSyntaxSupportFeature#ResultNameSQLSyntaxProvider, rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("id")), scalikejdbc.this.TypeBinder.int()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("username")), scalikejdbc.this.TypeBinder.string()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("password")), scalikejdbc.this.TypeBinder.option(scalikejdbc.this.TypeBinder.string())), rs.get(u.<roles: error>), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("created")), scalikejdbc.this.TypeBinder.jodaDateTime()));
  <synthetic> def apply$default$3(): Option = scala.None;
  <synthetic> def apply$default$4(): Option = scala.None;
  private[this] val u: scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider = Users.syntax("u");
  <stable> <accessor> def u(): scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider = Users.this.u;
  private[this] val autoSession: scalikejdbc.AutoSession.type = scalikejdbc.AutoSession;
  override <stable> <accessor> def autoSession(): scalikejdbc.AutoSession.type = Users.this.autoSession;
  def find(id: Int, session: scalikejdbc.DBSession): Option = {
    <artifact> val qual$1: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().eq(Users.this.u().field("id"), id, scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).single();
    <artifact> val x$2: scalikejdbc.DBSession = session;
    <artifact> val x$3: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
    <artifact> val x$4: scalikejdbc.ConnectionPoolContext = qual$1.apply$default$2();
    qual$1.apply(x$2, x$4, x$3)
  };
  <synthetic> def find$default$2(id: Int): scalikejdbc.DBSession = Users.this.autoSession();
  def findAll(implicit session: scalikejdbc.DBSession): List = {
    <artifact> val qual$2: scalikejdbc.SQLToList = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u()))).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).list();
    <artifact> val x$5: scalikejdbc.DBSession = session;
    <artifact> val x$6: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
    <artifact> val x$7: scalikejdbc.ConnectionPoolContext = qual$2.apply$default$2();
    qual$2.apply(x$5, x$7, x$6)
  };
  <synthetic> def findAll$default$1(): scalikejdbc.DBSession = Users.this.autoSession();
  def countAll(implicit session: scalikejdbc.DBSession): Long = {
  <artifact> val qual$3: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().apply(scala.this.Predef.wrapRefArray(Array[scalikejdbc.interpolation.SQLSyntax]{scalikejdbc.`package`.sqls().count()})).from(Users.as(Users.this.u()))).map({
  @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
    def <init>(): <$anon: Function1> = {
      $anonfun.super.<init>();
      ()
    };
    final def apply(rs: scalikejdbc.WrappedResultSet): Long = rs.long(1);
    final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
  };
  (new <$anon: Function1>(): Function1)
}).single();
  <artifact> val x$8: scalikejdbc.DBSession = session;
  <artifact> val x$9: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
  <artifact> val x$10: scalikejdbc.ConnectionPoolContext = qual$3.apply$default$2();
  qual$3.apply(x$8, x$10, x$9)
}.get();
  <synthetic> def countAll$default$1(): scalikejdbc.DBSession = Users.this.autoSession();
  def findBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): Option = {
    <artifact> val qual$4: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().append(where)).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).single();
    <artifact> val x$11: scalikejdbc.DBSession = session;
    <artifact> val x$12: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
    <artifact> val x$13: scalikejdbc.ConnectionPoolContext = qual$4.apply$default$2();
    qual$4.apply(x$11, x$13, x$12)
  };
  <synthetic> def findBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
  def findAllBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): List = {
    <artifact> val qual$5: scalikejdbc.SQLToList = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().append(where)).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).list();
    <artifact> val x$14: scalikejdbc.DBSession = session;
    <artifact> val x$15: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
    <artifact> val x$16: scalikejdbc.ConnectionPoolContext = qual$5.apply$default$2();
    qual$5.apply(x$14, x$16, x$15)
  };
  <synthetic> def findAllBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
  def countBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): Long = {
  <artifact> val qual$6: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().apply(scala.this.Predef.wrapRefArray(Array[scalikejdbc.interpolation.SQLSyntax]{scalikejdbc.`package`.sqls().count()})).from(Users.as(Users.this.u())).where().append(where)).map({
  @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
    def <init>(): <$anon: Function1> = {
      $anonfun.super.<init>();
      ()
    };
    final def apply(x$1: scalikejdbc.WrappedResultSet): Long = x$1.long(1);
    final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
  };
  (new <$anon: Function1>(): Function1)
}).single();
  <artifact> val x$17: scalikejdbc.DBSession = session;
  <artifact> val x$18: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
  <artifact> val x$19: scalikejdbc.ConnectionPoolContext = qual$6.apply$default$2();
  qual$6.apply(x$17, x$19, x$18)
}.get();
  <synthetic> def countBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
  def create(username: String, password: Option, roles: Option, created: org.joda.time.DateTime, session: scalikejdbc.DBSession): se.oobo.gbox.server.models.Users = {
    val generatedKey: Long = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.insert().into(Users).namedValues(scala.this.Predef.wrapRefArray(Array[Tuple2]{Users.this.column().field("username").->(username, scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory()), Users.this.column().field("password").->(password, scalikejdbc.this.ParameterBinderFactory.optionalParameterBinderFactory(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory())), Users.this.column().field("roles").->(roles, Users.this.arrayParameterBinderFactory()), Users.this.column().field("created").->(created, scalikejdbc.this.ParameterBinderFactory.jodaDateTimeParameterBinderFactory())}))).updateAndReturnGeneratedKey().apply(session);
    new se.oobo.gbox.server.models.Users(generatedKey.toInt(), username, password, roles, created)
  };
  <synthetic> def create$default$2(): Option = scala.None;
  <synthetic> def create$default$3(): Option = scala.None;
  <synthetic> def create$default$5(username: String, password: Option, roles: Option, created: org.joda.time.DateTime): scalikejdbc.DBSession = Users.this.autoSession();
  def batchInsert(entities: Seq, session: scalikejdbc.DBSession): List = {
    val params: Seq = entities.map({
      @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
        def <init>(): <$anon: Function1> = {
          $anonfun.super.<init>();
          ()
        };
        final def apply(entity: se.oobo.gbox.server.models.Users): Seq = collection.this.Seq.apply(scala.this.Predef.wrapRefArray(Array[Tuple2]{ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("username")), entity.username()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("password")), entity.password()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("roles")), entity.roles()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("created")), entity.created())}));
        final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
      };
      (new <$anon: Function1>(): Function1)
    }, collection.this.Seq.canBuildFrom());
    scalikejdbc.SQL.apply("insert into users(\n        username,\n        password,\n        roles,\n        created\n      ) values (\n        {username},\n        {password},\n        {roles},\n        {created}\n      )").batchByName(params).apply(session, immutable.this.List.canBuildFrom())
  };
  <synthetic> def batchInsert$default$2(entities: Seq): scalikejdbc.DBSession = Users.this.autoSession();
  def save(entity: se.oobo.gbox.server.models.Users, session: scalikejdbc.DBSession): se.oobo.gbox.server.models.Users = {
    scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.update().apply(Users).set(scala.this.Predef.wrapRefArray(Array[Tuple2]{Users.this.column().field("id").->(entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory()), Users.this.column().field("username").->(entity.username(), scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory()), Users.this.column().field("password").->(entity.password(), scalikejdbc.this.ParameterBinderFactory.optionalParameterBinderFactory(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory())), Users.this.column().field("roles").->(entity.roles(), Users.this.arrayParameterBinderFactory()), Users.this.column().field("created").->(entity.created(), scalikejdbc.this.ParameterBinderFactory.jodaDateTimeParameterBinderFactory())})).where().eq(Users.this.column().field("id"), entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).update().apply(session);
    entity
  };
  <synthetic> def save$default$2(entity: se.oobo.gbox.server.models.Users): scalikejdbc.DBSession = Users.this.autoSession();
  def destroy(entity: se.oobo.gbox.server.models.Users, session: scalikejdbc.DBSession): Int = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.delete().from(Users).where().eq(Users.this.column().field("id"), entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).update().apply(session);
  <synthetic> def destroy$default$2(entity: se.oobo.gbox.server.models.Users): scalikejdbc.DBSession = Users.this.autoSession();
  case <synthetic> def apply(id: Int, username: String, password: Option, roles: Option, created: org.joda.time.DateTime): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(id, username, password, roles, created);
  case <synthetic> def unapply(x$0: se.oobo.gbox.server.models.Users): Option = if (x$0.==(null))
    scala.this.None
  else
    new Some(new Tuple5(x$0.id(), x$0.username(), x$0.password(), x$0.roles(), x$0.created()));
  <synthetic> def <init>$default$3(): Option = scala.None;
  <synthetic> def <init>$default$4(): Option = scala.None;
  <synthetic> private def readResolve(): Object = models.this.Users;
  <synthetic> <stable> <artifact> def $outer(): scalikejdbc.SQLSyntaxSupportFeature = scalikejdbc.`package`.$asInstanceOf[scalikejdbc.SQLSyntaxSupportFeature]();
  override <stable> <bridge> <artifact> def autoSession(): scalikejdbc.DBSession = Users.this.autoSession();
  override <stable> <bridge> <artifact> def schemaName(): Option = Users.this.schemaName()
}
exception when typing package se.oobo.gbox.server.models {
  case class Users extends Object with Product with Serializable {
    <caseaccessor> <paramaccessor> private[this] val id: Int = _;
    <stable> <caseaccessor> <accessor> <paramaccessor> def id(): Int = Users.this.id;
    <caseaccessor> <paramaccessor> private[this] val username: String = _;
    <stable> <caseaccessor> <accessor> <paramaccessor> def username(): String = Users.this.username;
    <caseaccessor> <paramaccessor> private[this] val password: Option = _;
    <stable> <caseaccessor> <accessor> <paramaccessor> def password(): Option = Users.this.password;
    <caseaccessor> <paramaccessor> private[this] val roles: Option = _;
    <stable> <caseaccessor> <accessor> <paramaccessor> def roles(): Option = Users.this.roles;
    <caseaccessor> <paramaccessor> private[this] val created: org.joda.time.DateTime = _;
    <stable> <caseaccessor> <accessor> <paramaccessor> def created(): org.joda.time.DateTime = Users.this.created;
    def <init>(id: Int, username: String, password: Option, roles: Option, created: org.joda.time.DateTime): se.oobo.gbox.server.models.Users = {
      Users.super.<init>();
      Users.this./*Product$class*/$init$();
      ()
    };
    def save(implicit session: scalikejdbc.DBSession): se.oobo.gbox.server.models.Users = Users.save(this, session);
    <synthetic> def save$default$1(): scalikejdbc.DBSession = Users.autoSession();
    def destroy(implicit session: scalikejdbc.DBSession): Int = Users.destroy(this, session);
    <synthetic> def destroy$default$1(): scalikejdbc.DBSession = Users.autoSession();
    <synthetic> def copy(id: Int, username: String, password: Option, roles: Option, created: org.joda.time.DateTime): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(id, username, password, roles, created);
    <synthetic> def copy$default$1(): Int = Users.this.id();
    <synthetic> def copy$default$2(): String = Users.this.username();
    <synthetic> def copy$default$3(): Option = Users.this.password();
    <synthetic> def copy$default$4(): Option = Users.this.roles();
    <synthetic> def copy$default$5(): org.joda.time.DateTime = Users.this.created();
    override <synthetic> def productPrefix(): String = "Users";
    <synthetic> def productArity(): Int = 5;
    <synthetic> def productElement(x$1: Int): Object = {
      case <synthetic> val x1: Int = x$1;
      (x1: Int) match {
        case 0 => Users.this.id()
        case 1 => Users.this.username()
        case 2 => Users.this.password()
        case 3 => Users.this.roles()
        case 4 => Users.this.created()
        case _ => throw new IndexOutOfBoundsException(x$1.toString())
      }
    };
    override <synthetic> def productIterator(): Iterator = runtime.this.ScalaRunTime.typedProductIterator(Users.this);
    <synthetic> def canEqual(x$1: Object): Boolean = x$1.$isInstanceOf[se.oobo.gbox.server.models.Users]();
    override <synthetic> def hashCode(): Int = {
      <synthetic> var acc: Int = -889275714;
      acc = Statics.this.mix(acc, id());
      acc = Statics.this.mix(acc, Statics.this.anyHash(username()));
      acc = Statics.this.mix(acc, Statics.this.anyHash(password()));
      acc = Statics.this.mix(acc, Statics.this.anyHash(roles()));
      acc = Statics.this.mix(acc, Statics.this.anyHash(created()));
      Statics.this.finalizeHash(acc, 5)
    };
    override <synthetic> def toString(): String = ScalaRunTime.this._toString(Users.this);
    override <synthetic> def equals(x$1: Object): Boolean = Users.this.eq(x$1.asInstanceOf[Object]()).||({
  case <synthetic> val x1: Object = x$1;
  case5(){
    if (x1.isInstanceOf[se.oobo.gbox.server.models.Users]())
      matchEnd4(true)
    else
      case6()
  };
  case6(){
    matchEnd4(false)
  };
  matchEnd4(x: Boolean){
    x
  }
}.&&({
      <synthetic> val Users$1: se.oobo.gbox.server.models.Users = x$1.asInstanceOf[se.oobo.gbox.server.models.Users]();
      Users.this.id().==(Users$1.id()).&&(Users.this.username().==(Users$1.username())).&&(Users.this.password().==(Users$1.password())).&&(Users.this.roles().==(Users$1.roles())).&&(Users.this.created().==(Users$1.created())).&&(Users$1.canEqual(Users.this))
    }))
  };
  object Users extends Object with scalikejdbc.SQLSyntaxSupportFeature#SQLSyntaxSupport with se.oobo.gbox.server.models.ImplicitBinders with Serializable {
    def <init>(): se.oobo.gbox.server.models.Users.type = {
      Users.super.<init>();
      Users.this./*SQLSyntaxSupport$class*/$init$();
      Users.this./*ImplicitBinders$class*/$init$();
      ()
    };
    private[this] val schemaName: Some = new Some("gbox");
    override <stable> <accessor> def schemaName(): Some = Users.this.schemaName;
    private[this] val tableName: String = "users";
    override <stable> <accessor> def tableName(): String = Users.this.tableName;
    private[this] val columns: Seq = collection.this.Seq.apply(scala.this.Predef.wrapRefArray(Array[String]{"id", "username", "password", "roles", "created"}));
    override <stable> <accessor> def columns(): Seq = Users.this.columns;
    def apply(u: scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider, rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.this.apply(u.resultName(), rs);
    def apply(u: scalikejdbc.SQLSyntaxSupportFeature#ResultNameSQLSyntaxProvider, rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("id")), scalikejdbc.this.TypeBinder.int()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("username")), scalikejdbc.this.TypeBinder.string()), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("password")), scalikejdbc.this.TypeBinder.option(scalikejdbc.this.TypeBinder.string())), rs.get(u.<roles: error>), rs.get(scalikejdbc.`package`.scalikejdbcSQLSyntaxToStringImplicitDef(u.field("created")), scalikejdbc.this.TypeBinder.jodaDateTime()));
    <synthetic> def apply$default$3(): Option = scala.None;
    <synthetic> def apply$default$4(): Option = scala.None;
    private[this] val u: scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider = Users.syntax("u");
    <stable> <accessor> def u(): scalikejdbc.SQLSyntaxSupportFeature#QuerySQLSyntaxProvider = Users.this.u;
    private[this] val autoSession: scalikejdbc.AutoSession.type = scalikejdbc.AutoSession;
    override <stable> <accessor> def autoSession(): scalikejdbc.AutoSession.type = Users.this.autoSession;
    def find(id: Int, session: scalikejdbc.DBSession): Option = {
      <artifact> val qual$1: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().eq(Users.this.u().field("id"), id, scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).single();
      <artifact> val x$2: scalikejdbc.DBSession = session;
      <artifact> val x$3: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
      <artifact> val x$4: scalikejdbc.ConnectionPoolContext = qual$1.apply$default$2();
      qual$1.apply(x$2, x$4, x$3)
    };
    <synthetic> def find$default$2(id: Int): scalikejdbc.DBSession = Users.this.autoSession();
    def findAll(implicit session: scalikejdbc.DBSession): List = {
      <artifact> val qual$2: scalikejdbc.SQLToList = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u()))).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).list();
      <artifact> val x$5: scalikejdbc.DBSession = session;
      <artifact> val x$6: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
      <artifact> val x$7: scalikejdbc.ConnectionPoolContext = qual$2.apply$default$2();
      qual$2.apply(x$5, x$7, x$6)
    };
    <synthetic> def findAll$default$1(): scalikejdbc.DBSession = Users.this.autoSession();
    def countAll(implicit session: scalikejdbc.DBSession): Long = {
  <artifact> val qual$3: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().apply(scala.this.Predef.wrapRefArray(Array[scalikejdbc.interpolation.SQLSyntax]{scalikejdbc.`package`.sqls().count()})).from(Users.as(Users.this.u()))).map({
  @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
    def <init>(): <$anon: Function1> = {
      $anonfun.super.<init>();
      ()
    };
    final def apply(rs: scalikejdbc.WrappedResultSet): Long = rs.long(1);
    final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
  };
  (new <$anon: Function1>(): Function1)
}).single();
  <artifact> val x$8: scalikejdbc.DBSession = session;
  <artifact> val x$9: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
  <artifact> val x$10: scalikejdbc.ConnectionPoolContext = qual$3.apply$default$2();
  qual$3.apply(x$8, x$10, x$9)
}.get();
    <synthetic> def countAll$default$1(): scalikejdbc.DBSession = Users.this.autoSession();
    def findBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): Option = {
      <artifact> val qual$4: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().append(where)).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).single();
      <artifact> val x$11: scalikejdbc.DBSession = session;
      <artifact> val x$12: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
      <artifact> val x$13: scalikejdbc.ConnectionPoolContext = qual$4.apply$default$2();
      qual$4.apply(x$11, x$13, x$12)
    };
    <synthetic> def findBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
    def findAllBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): List = {
      <artifact> val qual$5: scalikejdbc.SQLToList = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().from(Users.as(Users.this.u())).where().append(where)).map({
  {
    @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
      def <init>(): <$anon: Function1> = {
        $anonfun.super.<init>();
        ()
      };
      final def apply(rs: scalikejdbc.WrappedResultSet): se.oobo.gbox.server.models.Users = Users.apply(Users.this.u().resultName(), rs);
      final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
    };
    (new <$anon: Function1>(): Function1)
  }
}).list();
      <artifact> val x$14: scalikejdbc.DBSession = session;
      <artifact> val x$15: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
      <artifact> val x$16: scalikejdbc.ConnectionPoolContext = qual$5.apply$default$2();
      qual$5.apply(x$14, x$16, x$15)
    };
    <synthetic> def findAllBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
    def countBy(where: scalikejdbc.interpolation.SQLSyntax, session: scalikejdbc.DBSession): Long = {
  <artifact> val qual$6: scalikejdbc.SQLToOption = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.select().apply(scala.this.Predef.wrapRefArray(Array[scalikejdbc.interpolation.SQLSyntax]{scalikejdbc.`package`.sqls().count()})).from(Users.as(Users.this.u())).where().append(where)).map({
  @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
    def <init>(): <$anon: Function1> = {
      $anonfun.super.<init>();
      ()
    };
    final def apply(x$1: scalikejdbc.WrappedResultSet): Long = x$1.long(1);
    final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
  };
  (new <$anon: Function1>(): Function1)
}).single();
  <artifact> val x$17: scalikejdbc.DBSession = session;
  <artifact> val x$18: scalikejdbc.GeneralizedTypeConstraintsForWithExtractor.=:= = GeneralizedTypeConstraintsForWithExtractor.this.=:=.tpEquals();
  <artifact> val x$19: scalikejdbc.ConnectionPoolContext = qual$6.apply$default$2();
  qual$6.apply(x$17, x$19, x$18)
}.get();
    <synthetic> def countBy$default$2(where: scalikejdbc.interpolation.SQLSyntax): scalikejdbc.DBSession = Users.this.autoSession();
    def create(username: String, password: Option, roles: Option, created: org.joda.time.DateTime, session: scalikejdbc.DBSession): se.oobo.gbox.server.models.Users = {
      val generatedKey: Long = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.insert().into(Users).namedValues(scala.this.Predef.wrapRefArray(Array[Tuple2]{Users.this.column().field("username").->(username, scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory()), Users.this.column().field("password").->(password, scalikejdbc.this.ParameterBinderFactory.optionalParameterBinderFactory(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory())), Users.this.column().field("roles").->(roles, Users.this.arrayParameterBinderFactory()), Users.this.column().field("created").->(created, scalikejdbc.this.ParameterBinderFactory.jodaDateTimeParameterBinderFactory())}))).updateAndReturnGeneratedKey().apply(session);
      new se.oobo.gbox.server.models.Users(generatedKey.toInt(), username, password, roles, created)
    };
    <synthetic> def create$default$2(): Option = scala.None;
    <synthetic> def create$default$3(): Option = scala.None;
    <synthetic> def create$default$5(username: String, password: Option, roles: Option, created: org.joda.time.DateTime): scalikejdbc.DBSession = Users.this.autoSession();
    def batchInsert(entities: Seq, session: scalikejdbc.DBSession): List = {
      val params: Seq = entities.map({
        @SerialVersionUID(value = 0) final <synthetic> class $anonfun extends scala.runtime.AbstractFunction1 with Serializable {
          def <init>(): <$anon: Function1> = {
            $anonfun.super.<init>();
            ()
          };
          final def apply(entity: se.oobo.gbox.server.models.Users): Seq = collection.this.Seq.apply(scala.this.Predef.wrapRefArray(Array[Tuple2]{ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("username")), entity.username()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("password")), entity.password()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("roles")), entity.roles()), ArrowAssoc.this.->$extension(scala.this.Predef.ArrowAssoc(scala.Symbol.apply("created")), entity.created())}));
          final <bridge> <artifact> def apply(v1: Object): Object = $anonfun.this.apply(v1)
        };
        (new <$anon: Function1>(): Function1)
      }, collection.this.Seq.canBuildFrom());
      scalikejdbc.SQL.apply("insert into users(\n        username,\n        password,\n        roles,\n        created\n      ) values (\n        {username},\n        {password},\n        {roles},\n        {created}\n      )").batchByName(params).apply(session, immutable.this.List.canBuildFrom())
    };
    <synthetic> def batchInsert$default$2(entities: Seq): scalikejdbc.DBSession = Users.this.autoSession();
    def save(entity: se.oobo.gbox.server.models.Users, session: scalikejdbc.DBSession): se.oobo.gbox.server.models.Users = {
      scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.update().apply(Users).set(scala.this.Predef.wrapRefArray(Array[Tuple2]{Users.this.column().field("id").->(entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory()), Users.this.column().field("username").->(entity.username(), scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory()), Users.this.column().field("password").->(entity.password(), scalikejdbc.this.ParameterBinderFactory.optionalParameterBinderFactory(scalikejdbc.this.ParameterBinderFactory.stringParameterBinderFactory())), Users.this.column().field("roles").->(entity.roles(), Users.this.arrayParameterBinderFactory()), Users.this.column().field("created").->(entity.created(), scalikejdbc.this.ParameterBinderFactory.jodaDateTimeParameterBinderFactory())})).where().eq(Users.this.column().field("id"), entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).update().apply(session);
      entity
    };
    <synthetic> def save$default$2(entity: se.oobo.gbox.server.models.Users): scalikejdbc.DBSession = Users.this.autoSession();
    def destroy(entity: se.oobo.gbox.server.models.Users, session: scalikejdbc.DBSession): Int = scalikejdbc.`package`.withSQL().apply(scalikejdbc.`package`.delete().from(Users).where().eq(Users.this.column().field("id"), entity.id(), scalikejdbc.this.ParameterBinderFactory.intParameterBinderFactory())).update().apply(session);
    <synthetic> def destroy$default$2(entity: se.oobo.gbox.server.models.Users): scalikejdbc.DBSession = Users.this.autoSession();
    case <synthetic> def apply(id: Int, username: String, password: Option, roles: Option, created: org.joda.time.DateTime): se.oobo.gbox.server.models.Users = new se.oobo.gbox.server.models.Users(id, username, password, roles, created);
    case <synthetic> def unapply(x$0: se.oobo.gbox.server.models.Users): Option = if (x$0.==(null))
      scala.this.None
    else
      new Some(new Tuple5(x$0.id(), x$0.username(), x$0.password(), x$0.roles(), x$0.created()));
    <synthetic> def <init>$default$3(): Option = scala.None;
    <synthetic> def <init>$default$4(): Option = scala.None;
    <synthetic> private def readResolve(): Object = models.this.Users;
    <synthetic> <stable> <artifact> def $outer(): scalikejdbc.SQLSyntaxSupportFeature = scalikejdbc.`package`.$asInstanceOf[scalikejdbc.SQLSyntaxSupportFeature]();
    override <stable> <bridge> <artifact> def autoSession(): scalikejdbc.DBSession = Users.this.autoSession();
    override <stable> <bridge> <artifact> def schemaName(): Option = Users.this.schemaName()
  }
}
[trace] Stack trace suppressed: run last compile:compileIncremental for the full output.
[error] (compile:compileIncremental) scala.reflect.internal.FatalError:
[error]   unrecoverable error
[error]      while compiling: /Users/janne/projects/private/gboxserver/src/main/scala/se/oobo/gbox/server/models/Users.scala
[error]         during phase: globalPhase=erasure, enteringPhase=posterasure
[error]      library version: version 2.11.7
[error]     compiler version: version 2.11.7
[error]   reconstructed args: -encoding utf8 -deprecation -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/classes:/Users/janne/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7.jar -classpath /Users/janne/projects/private/gboxserver/target/scala-2.11/classes:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http_2.11/jars/akka-http_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http-core_2.11/jars/akka-http-core_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-parsing_2.11/jars/akka-parsing_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-stream_2.11/jars/akka-stream_2.11-2.4.16.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/jars/akka-actor_2.11-2.4.16.jar:/Users/janne/.ivy2/cache/com.typesafe/config/bundles/config-1.3.0.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-java8-compat_2.11/bundles/scala-java8-compat_2.11-0.7.0.jar:/Users/janne/.ivy2/cache/org.reactivestreams/reactive-streams/jars/reactive-streams-1.0.0.jar:/Users/janne/.ivy2/cache/com.typesafe/ssl-config-core_2.11/bundles/ssl-config-core_2.11-0.2.1.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.11/bundles/scala-parser-combinators_2.11-1.0.4.jar:/Users/janne/.ivy2/cache/com.typesafe.akka/akka-http-spray-json_2.11/jars/akka-http-spray-json_2.11-10.0.1.jar:/Users/janne/.ivy2/cache/io.spray/spray-json_2.11/bundles/spray-json_2.11-1.3.2.jar:/Users/janne/.ivy2/local/se.oobo.akka/akka-http-jwt_2.11/1.0-SNAPSHOT/jars/akka-http-jwt_2.11.jar:/Users/janne/.ivy2/cache/com.jason-goodwin/authentikat-jwt_2.11/jars/authentikat-jwt_2.11-0.4.1.jar:/Users/janne/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.9.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-native_2.11/jars/json4s-native_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-core_2.11/jars/json4s-core_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-ast_2.11/jars/json4s-ast_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/com.thoughtworks.paranamer/paranamer/jars/paranamer-2.6.jar:/Users/janne/.ivy2/cache/org.scala-lang/scalap/jars/scalap-2.11.0.jar:/Users/janne/.ivy2/cache/org.scala-lang/scala-compiler/jars/scala-compiler-2.11.0.jar:/Users/janne/.ivy2/cache/org.scala-lang.modules/scala-xml_2.11/bundles/scala-xml_2.11-1.0.1.jar:/Users/janne/.ivy2/cache/org.json4s/json4s-jackson_2.11/jars/json4s-jackson_2.11-3.2.10.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.3.1.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.3.0.jar:/Users/janne/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.3.1.jar:/Users/janne/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.22.jar:/Users/janne/.ivy2/cache/net.codingwell/scala-guice_2.11/jars/scala-guice_2.11-4.1.0.jar:/Users/janne/.ivy2/cache/com.google.inject/guice/jars/guice-4.1.0.jar:/Users/janne/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar:/Users/janne/.ivy2/cache/aopalliance/aopalliance/jars/aopalliance-1.0.jar:/Users/janne/.ivy2/cache/com.google.guava/guava/bundles/guava-19.0.jar:/Users/janne/.ivy2/cache/com.google.inject.extensions/guice-multibindings/jars/guice-multibindings-4.1.0.jar:/Users/janne/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-3.0.1.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc_2.11/jars/scalikejdbc_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-core_2.11/jars/scalikejdbc-core_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.11.8.jar:/Users/janne/.ivy2/cache/org.apache.commons/commons-dbcp2/jars/commons-dbcp2-2.1.1.jar:/Users/janne/.ivy2/cache/org.apache.commons/commons-pool2/jars/commons-pool2-2.4.2.jar:/Users/janne/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.2.jar:/Users/janne/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.9.5.jar:/Users/janne/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.8.1.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-interpolation_2.11/jars/scalikejdbc-interpolation_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-interpolation-macro_2.11/jars/scalikejdbc-interpolation-macro_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/org.scalikejdbc/scalikejdbc-config_2.11/jars/scalikejdbc-config_2.11-2.5.0.jar:/Users/janne/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.7.jar:/Users/janne/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.1.7.jar:/Users/janne/.ivy2/cache/org.postgresql/postgresql/bundles/postgresql-9.4.1212.jar:/Users/janne/.ivy2/cache/commons-dbcp/commons-dbcp/jars/commons-dbcp-1.4.jar:/Users/janne/.ivy2/cache/commons-pool/commons-pool/jars/commons-pool-1.5.4.jar:/Users/janne/.ivy2/cache/org.mindrot/jbcrypt/jars/jbcrypt-0.3m.jar -unchecked
[error]
[error]   last tree to typer: TypeTree(class Option)
[error]        tree position: line 32 of /Users/janne/projects/private/gboxserver/src/main/scala/se/oobo/gbox/server/models/Users.scala
[error]             tree tpe: Option
[error]               symbol: (sealed abstract) class Option in package scala
[error]    symbol definition: sealed abstract class Option extends Product with Serializable (a ClassSymbol)
[error]       symbol package: scala
[error]        symbol owners: class Option
[error]            call site: method apply in object Users in package models
[error]
[error] == Source file context for tree position ==
[error]
[error]     29     id = rs.get(u.id),
[error]     30     username = rs.get(u.username),
[error]     31     password = rs.get(u.password),
[error]     32     roles = rs.get(u.roles),
[error]     33     created = rs.get(u.created)
[error]     34   )
[error]     35
[error] Total time: 2 s, completed Jan 13, 2017 10:27:08 AM
>

y2k-shubham

unread,
Feb 26, 2018, 3:45:29 AM2/26/18
to ScalikeJDBC Users Group
@Jan, did you manage to solve the problem?

I'm also supposed to read certain tables containing Enum-type fields from MySQL and map them to Enums in my Scala code.
Please care to share some hints as to how should I proceed on this.
...
Reply all
Reply to author
Forward
0 new messages