Scala时间戳/日期零参数构造函数?

时间:2012-03-28 04:43:26

标签: scala playframework-2.0 squeryl

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

基本上我需要完成这个:

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

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

背景

在我的游戏中出现以下错误! 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的模型,这是一个bug,还是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]

2 个答案:

答案 0 :(得分:4)

如果startOrder定义为

val startOrder: Option[java.sql.Timestamp]

在类定义中。我相信,

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

应该传递给构造函数。

答案 1 :(得分:0)

选项在值是可选的时使用,即可能存在值。只有存在值时,才使用 Some 包装它。但如果没有值,则使用