Information:Module "dwh-sandbox" was fully rebuilt due to project configuration/dependencies changes
Information:3/30/2016 3:42 PM - Compilation completed with 2 errors and 0 warnings in 11s 372ms
Error:scalac:
while compiling: C:\Users\mmallison\Documents\dwh-sandbox\src\main\scala\actions\Main.scala
during phase: typer
library version: version 2.10.6
compiler version: version 2.10.6
reconstructed args: -nobootcp -javabootclasspath ; -classpath C:\Program Files\Java\jdk1.7.0_79\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_79\jre\lib\rt.jar;C:\Users\mmallison\Documents\dwh-sandbox\target\classes;C:\Users\mmallison.m2\repository\org\postgresql\postgresql\9.4-1206-jdbc42\postgresql-9.4-1206-jdbc42.jar;C:\Users\mmallison.m2\repository\joda-time\joda-time\2.2\joda-time-2.2.jar;C:\Users\mmallison.m2\repository\org\joda\joda-convert\1.3.1\joda-convert-1.3.1.jar;C:\Users\mmallison.m2\repository\com\typesafe\slick\slick_2.11\3.1.0\slick_2.11-3.1.0.jar;C:\Users\mmallison.m2\repository\org\scala-lang\scala-library\2.11.6\scala-library-2.11.6.jar;C:\Users\mmallison.m2\repository\org\slf4j\slf4j-api\1.7.10\slf4j-api-1.7.10.jar;C:\Users\mmallison.m2\repository\com\typesafe\config\1.2.1\config-1.2.1.jar;C:\Users\mmallison.m2\repository\org\reactivestreams\reactive-streams\1.0.0\reactive-streams-1.0.0.jar;C:\Users\mmallison.m2\repository\org\slf4j\slf4j-nop\slf4j-nop\slf4j-nop-slf4j-nop.jar
last tree to typer: TypeTree(class AlbumTable)
symbol: class AlbumTable in object Main (flags: )
symbol definition: class AlbumTable extends slick.driver.PostgresDriver.api.Table[actions.Main.Album]
tpe: actions.Main.AlbumTable
symbol owners: class AlbumTable -> object Main -> package actions
context owners: package <root>
== Enclosing template or block ==
<empty>
== Expanded type of tree ==
TypeRef(
pre = ThisType(object Main)
TypeSymbol(
class AlbumTable extends slick.driver.PostgresDriver.api.Table[actions.Main.Album]
)
)
uncaught exception during compilation: scala.MatchError
Error:scalac: Error: false (of class scala.reflect.internal.Trees$Literal)
scala.MatchError: false (of class scala.reflect.internal.Trees$Literal)
at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.unpickleAtom(Macros.scala:118)
at scala.tools.nsc.typechecker.Macros$MacroImplBinding$$anonfun$7.apply(Macros.scala:186)
at scala.tools.nsc.typechecker.Macros$MacroImplBinding$$anonfun$7.apply(Macros.scala:186)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at scala.tools.nsc.typechecker.Macros$MacroImplBinding$.unpickle(Macros.scala:186)
at scala.tools.nsc.typechecker.Macros$class.scala$tools$nsc$typechecker$Macros$$loadMacroImplBinding(Macros.scala:
sbt clean
with sbt. Not sure what that would be in Maven or IntelliJ… or possibly manaully remove the compiled classes to be sure.
code
code
val query:Query[(AlbumTable,ArtistTable), (Album,Artist), Seq] =
AlbumTable join ArtistTable on {
(albumTable, artistTable) => albumTable.artistId === artistTable.id
}
println(query.result.statements)//List(select x2."id", x2."artistId", x2."title", x2."year", x3."id", x3."name", x2."rating" from "albums" x2, "artists" x3 where x2."artistId" = x3."id")
def update(e: Entity): DBIO[Int] = table.filter(_.id === e.id).map(row => (row.column1, row.column2, …etc)).update( (e.column1, e.column2,…etc))
Hi!
I just finished reading Essential Slick; great book!
I was wondering if you had any advice on data modelling, i.e., how to represent the real world domain in Scala types.
The main issue for me is that I'm used to thinking in nested types (e.g., case classes containing a sequence of another case class which again contains a case class, etc.) which seem to be a bad fit for the relational model.
How do you go about modelling the often complex relationships of real world things in Scala and Slick?
Thanks a lot in advance,
Matthias
[info] Loading global plugins from /Users/amit/.sbt/1.0/plugins
[info] Loading settings from plugins.sbt ...
[info] Loading project definition from /Users/amit/Workspaces/scalaWorkspace/scalax15-slick/project
[info] Updating {file:/Users/amit/Workspaces/scalaWorkspace/scalax15-slick/project/}scalax15-slick-build...
[warn] module not found: com.typesafe.sbteclipse#sbteclipse-plugin;2.5.0
[warn] ==== typesafe-ivy-releases: tried
[warn] https://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbteclipse/sbteclipse-plugin/scala_2.12/sbt_1.0//2.5.0/ivys/ivy.xml
[warn] ==== sbt-plugin-releases: tried
[warn] https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbteclipse/sbteclipse-plugin/scala_2.12/sbt_1.0//2.5.0/ivys/ivy.xml
[warn] ==== local: tried
[warn] /Users/amit/.ivy2/local/com.typesafe.sbteclipse/sbteclipse-plugin/scala_2.12/sbt_1.0//2.5.0/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/com/typesafe/sbteclipse/sbteclipse-plugin_2.12_1.0/2.5.0/sbteclipse-plugin-2.5.0.pom
[warn] ==== local-preloaded-ivy: tried
[warn] /Users/amit/.sbt/preloaded/com.typesafe.sbteclipse/sbteclipse-plugin/2.5.0/ivys/ivy.xml
[warn] ==== local-preloaded: tried
[warn] file:////Users/amit/.sbt/preloaded/com/typesafe/sbteclipse/sbteclipse-plugin_2.12_1.0/2.5.0/sbteclipse-plugin-2.5.0.pom
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.typesafe.sbteclipse#sbteclipse-plugin;2.5.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.typesafe.sbteclipse:sbteclipse-plugin:2.5.0 (scalaVersion=2.12, sbtVersion=1.0)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] com.typesafe.sbteclipse:sbteclipse-plugin:2.5.0 (scalaVersion=2.12, sbtVersion=1.0) (/Users/amit/Workspaces/scalaWorkspace/scalax15-slick/project/plugins.sbt#L1-2)
[warn] +- default:scalax15-slick-build:0.1-SNAPSHOT (scalaVersion=2.12, sbtVersion=1.0)
[error] sbt.librarymanagement.ResolveException: unresolved dependency: com.typesafe.sbteclipse#sbteclipse-plugin;2.5.0: not found
[error] at sbt.internal.librarymanagement.IvyActions$.resolveAndRetrieve(IvyActions.scala:331)
[error] at sbt.internal.librarymanagement.IvyActions$.$anonfun$updateEither$1(IvyActions.scala:205)
[error] at sbt.internal.librarymanagement.IvySbt$Module.$anonfun$withModule$1(Ivy.scala:229)
[error] at sbt.internal.librarymanagement.IvySbt.$anonfun$withIvy$1(Ivy.scala:190)
[error] at sbt.internal.librarymanagement.IvySbt.sbt$internal$librarymanagement$IvySbt$$action$1(Ivy.scala:70)
[error] at sbt.internal.librarymanagement.IvySbt$$anon$3.call(Ivy.scala:77)
[error] at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
[error] at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
[error] at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
[error] at xsbt.boot.Using$.withResource(Using.scala:10)
[error] at xsbt.boot.Using$.apply(Using.scala:9)
[error] at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
[error] at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
[error] at xsbt.boot.Locks$.apply0(Locks.scala:31)
[error] at xsbt.boot.Locks$.apply(Locks.scala:28)
[error] at sbt.internal.librarymanagement.IvySbt.withDefaultLogger(Ivy.scala:77)
[error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:185)
[error] at sbt.internal.librarymanagement.IvySbt.withIvy(Ivy.scala:182)
[error] at sbt.internal.librarymanagement.IvySbt$Module.withModule(Ivy.scala:228)
[error] at sbt.internal.librarymanagement.IvyActions$.updateEither(IvyActions.scala:190)
[error] at sbt.librarymanagement.ivy.IvyDependencyResolution.update(IvyDependencyResolution.scala:20)
[error] at sbt.librarymanagement.DependencyResolution.update(DependencyResolution.scala:56)
[error] at sbt.internal.LibraryManagement$.resolve$1(LibraryManagement.scala:38)
[error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$12(LibraryManagement.scala:91)
[error] at sbt.util.Tracked$.$anonfun$lastOutput$1(Tracked.scala:64)
[error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$19(LibraryManagement.scala:104)
[error] at scala.util.control.Exception$Catch.apply(Exception.scala:224)
[error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11(LibraryManagement.scala:104)
[error] at sbt.internal.LibraryManagement$.$anonfun$cachedUpdate$11$adapted(LibraryManagement.scala:87)
[error] at sbt.util.Tracked$.$anonfun$inputChanged$1(Tracked.scala:141)
[error] at sbt.internal.LibraryManagement$.cachedUpdate(LibraryManagement.scala:118)
[error] at sbt.Classpaths$.$anonfun$updateTask$5(Defaults.scala:2313)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:42)
[error] at sbt.std.Transform$$anon$4.work(System.scala:64)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:257)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
[error] at sbt.Execute.work(Execute.scala:266)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:257)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:167)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:32)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (*:update) sbt.librarymanagement.ResolveException: unresolved dependency: com.typesafe.sbteclipse#sbteclipse-plugin;2.5.0: not found
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore?