0

Option[]在字段中使用时,Squeryl 需要一个零参数构造函数。我意识到如何为Longlike创建这样的构造函数,0L但是如何为 Timestamp 或 Date 创建这样的东西?

基本上我需要完成这个:

def this() = this(0L,"",TIMESTAMP,TIMESTAMP,0L,"","","","",Some(""),Some(""),"",DATE,DATE,false,false,false,Some(0L),Some(0),Some(0L))

以下是我最初发现时间戳和日期问题的方法。

背景

在我的 Play 中出现以下错误!2.0 Scala 应用程序(也使用 Squeryl):

Caused by: java.lang.RuntimeException: Could not deduce Option[] type of field 'startOrder' of class models.Job

models.Job 中的这个字段:

@Column("start_order")
var startOrder: Option[Int],

在 Postgres DB 中,它被定义为integer. Play 中是否有不同的处理方式!2.0 的模型,这是一个错误,还是一个 Squeryl 问题?谢谢!

堆栈跟踪,看起来像 Squeryl 问题

Caused by: java.lang.RuntimeException: Could not deduce Option[] type of field 'startOrder' of class models.Job
        at scala.sys.package$.error(package.scala:27) ~[scala-library.jar:na]
        at scala.Predef$.error(Predef.scala:66) ~[scala-library.jar:0.11.2]
        at org.squeryl.internals.FieldMetaData$$anon$1.build(FieldMetaData.scala:441) ~[squeryl_2.9.1-0.9.4.jar:na]
        at org.squeryl.internals.PosoMetaData$$anonfun$3.apply(PosoMetaData.scala:111) ~[squeryl_2.9.1-0.9.4.jar:na]
        at org.squeryl.internals.PosoMetaData$$anonfun$3.apply(PosoMetaData.scala:80) ~[squeryl_2.9.1-0.9.4.jar:na]
        at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:176) ~[scala-library.jar:0.11.2]
4

2 回答 2

4

如果startOrder定义为

val startOrder: Option[java.sql.Timestamp]

在类定义中。我相信,

Some(new java.sql.Timestamp(0))

应该传递给构造函数。

于 2012-03-28T06:02:21.697 回答
0

当一个值是可选的时使用选项,即是否有一个值。只有存在值时,才使用Some包装它。但如果没有价值,则使用None

于 2012-03-28T05:39:05.473 回答