我正在使用Slick 2代码生成器在我的Scala / Play应用程序中生成我的PostgreSQL数据库的表类。 然而,其中一些字段是JSON类型,并且它们被生成器转换为字符串。 我想知道是否可以通过slick-pg插件来让生成器识别Postgres JSON类型?
我尝试直接在
但我不知道如何将其与代码生成器例程一起使用,而不是标准驱动程序:
我尝试直接在
Build.scala
中扩展slick.driver.PostgresDriver
:import slick.driver.PostgresDriver
import com.github.tminglei.slickpg._
trait MyPostgresDriver extends PostgresDriver
with PgArraySupport
with PgDateSupport
with PgRangeSupport
with PgHStoreSupport
with PgPlayJsonSupport
with PgSearchSupport
with PgPostGISSupport {
override val Implicit = new ImplicitsPlus {}
override val simple = new SimpleQLPlus {}
trait ImplicitsPlus extends Implicits
with ArrayImplicits
with DateTimeImplicits
with RangeImplicits
with HStoreImplicits
with JsonImplicits
with SearchImplicits
with PostGISImplicits
trait SimpleQLPlus extends SimpleQL
with ImplicitsPlus
with SearchAssistants
with PostGISAssistants
}
object MyPostgresDriver extends MyPostgresDriver
但我不知道如何将其与代码生成器例程一起使用,而不是标准驱动程序:
SourceCodeGenerator.main(
Array(
"scala.slick.driver.PostgresDriver", //how do I use MyPostgresDriver here?
"org.postgresql.Driver",
"jdbc:postgresql://localhost:5432/db?user=root&password=root",
"app",
"db"
)
)
override def rawType = if (model.type == "SOME_SPECIAL_COLUMN_TYPE") "MyCustomType" else super.rawType
。 - CaballeroSERIAL
被映射为Int
,而实际上它应该是Long
。通过列名来解决这个问题远非理想,而且可能效果不佳。你能否提供一个使用 JDBC 元数据的示例呢? - Akos Krivachy