Far*_*mor 11 database scala scalaquery playframework-2.0 slick
如何告诉Slick创建允许小数的十进制SQL类型?
似乎默认情况下Slick不允许使用下面的代码注意到小数.它decimal(10,0)在MySQL中创建一个具有数据类型的列.
我的Scala代码中有以下模型:
import scala.slick.driver.MySQLDriver.simple._
case class TimeType(id: Option[Int], name: String,
employeeMultiplier: BigDecimal, employerMultiplier: BigDecimal)
object TimeTypes extends Table[TimeType]("timeType") {
def id = column[Int]("id", O.PrimaryKey, O.AutoInc)
def name = column[String]("name")
def employeeMultiplier = column[BigDecimal]("employeeMultiplier")
def employerMultiplier = column[BigDecimal]("employerMultiplier")
def * = id.? ~ name ~ employeeMultiplier ~ employerMultiplier <> (TimeType, TimeType.unapply _)
}
Run Code Online (Sandbox Code Playgroud)
在启动期间,我使用Slick创建此表,除非它已存在此代码
...
lazy val database = Database.forDataSource(DB.getDataSource())
database.withSession {
if (MTable.getTables("timeType").list.isEmpty) {
TimeTypes.ddl.create
...
Run Code Online (Sandbox Code Playgroud)
Fai*_*aiz 10
这不是理想的,但你可以试试这个:
def employeeMultiplier =
column[BigDecimal]("employeeMultiplier", O.DBType("decimal(10, 4)"))
Run Code Online (Sandbox Code Playgroud)
MySQL只接受DECIMAL,在这种情况下,它创建的字段恰好是默认值DECIMAL(10, 0).我不确定是否有任何其他方法可以告诉Slick/ScalaQuery你想要你的字段的某些选项.
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |