Customize slick code generator

我是研究僧i 提交于 2019-12-13 00:39:43

问题


If I have

abstract class RichTable[T](tableTag: Tag, name: String) extends Table[T](tableTag, name) {
   val tenantId: Column[Int] = column[Int]("tenant_id")
}

And slick generated Table class as follow

 class Dashboard(_tableTag: Tag) extends Table[DashboardRow](_tableTag, "dashboard") {

I want to customize slick code generator to instead generate

class Dashboard(_tableTag: Tag) extends RichTable[DashboardRow](_tableTag, "dashboard") {
 ...
 override val tenantId: Column[Int] = column[Int]("tenant_id") //note override keyword
}

Is this possible to customize slick code generator particular for this case? Note: extends RichTable need to be applied selectively (a list of table classes vs every generated class).


回答1:


For RichTable you need to override def code of Table.

See

https://github.com/slick/slick/blob/2.1/slick-codegen/src/main/scala/scala/slick/codegen/AbstractSourceCodeGenerator.scala#L128



来源:https://stackoverflow.com/questions/26977077/customize-slick-code-generator

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!