aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-11-22 21:20:38 -0500
committerStewart Stewart <stewinsalot@gmail.com>2016-11-22 21:41:45 -0500
commit9c30310ca4f6223e65f8d607c953e18576648c9a (patch)
tree52f85893c414e69542992e9e5ebe71d7bfe1dfd0 /src
parentfaccc16b0db9cd132a8e31fe58fee18d4f131de1 (diff)
downloadslick-codegen-plugin-9c30310ca4f6223e65f8d607c953e18576648c9a.tar.gz
slick-codegen-plugin-9c30310ca4f6223e65f8d607c953e18576648c9a.tar.bz2
slick-codegen-plugin-9c30310ca4f6223e65f8d607c953e18576648c9a.zip
Fix default Id implementation
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/CodegenPlugin.scala5
-rw-r--r--src/main/scala/NamespacedCodegen.scala14
2 files changed, 14 insertions, 5 deletions
diff --git a/src/main/scala/CodegenPlugin.scala b/src/main/scala/CodegenPlugin.scala
index 01286ee..1286919 100644
--- a/src/main/scala/CodegenPlugin.scala
+++ b/src/main/scala/CodegenPlugin.scala
@@ -54,7 +54,10 @@ object CodegenPlugin extends AutoPlugin {
Some(codegenSchemaWhitelist.value).filter(_.nonEmpty),
codegenOutputPath.value,
codegenForeignKeys.value,
- codegenSchemaBaseClassParts.value match {
+ (if (codegenIdType.value.isEmpty)
+ codegenSchemaBaseClassParts.value :+ "DefaultIdTypeMapper"
+ else
+ codegenSchemaBaseClassParts.value) match {
case Nil => "AnyRef"
case parts => parts.mkString(" with ")
},
diff --git a/src/main/scala/NamespacedCodegen.scala b/src/main/scala/NamespacedCodegen.scala
index 2ac41e0..42c53f5 100644
--- a/src/main/scala/NamespacedCodegen.scala
+++ b/src/main/scala/NamespacedCodegen.scala
@@ -103,11 +103,17 @@ class Generator(uri: URI,
val packageName = new PackageNameGenerator(pkg, dbModel).code
val allImports: String = new ImportGenerator(dbModel, schemaImports).code
- private val defaultIdImplementation =
- """|case class Id[T](v: Int)
- |object Id {
+ val defaultIdImplementation =
+ """|final case class Id[T](v: Int)
+ |trait DefaultIdTypeMapper {
+ | val database: xyz.driver.core.database.Database
+ | import database.profile.api._
| implicit def idTypeMapper[A]: BaseColumnType[Id[A]] = MappedColumnType.base[Id[A], Int](_.v, Id(_))
- |}""".stripMargin
+ |}
+ |""".stripMargin
+
+ val defaultIdTypeMapper =
+ "implicit def idTypeMapper[A]: BaseColumnType[Id[A]] = MappedColumnType.base[Id[A], Int](_.v, Id(_))\n"
override def code: String = {