diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2016-11-22 21:20:38 -0500 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2016-11-22 21:41:45 -0500 |
commit | 9c30310ca4f6223e65f8d607c953e18576648c9a (patch) | |
tree | 52f85893c414e69542992e9e5ebe71d7bfe1dfd0 /src | |
parent | faccc16b0db9cd132a8e31fe58fee18d4f131de1 (diff) | |
download | slick-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.scala | 5 | ||||
-rw-r--r-- | src/main/scala/NamespacedCodegen.scala | 14 |
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 = { |