0

Squerylは、Option[]フィールドで使用する場合、引数ゼロのコンストラクターを必要とします。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 に答える