2012-03-28 16 views
0

フィールドにOption[]を使用する場合、Squerylには引数なしのコンストラクタが必要です。 0LのようなLongのようなコンストラクタをどのように作成することができるのか気づいたが、タイムスタンプや日付のようなものを作成するにはどうすればいいですか?スカラタイムスタンプ/日付ゼロ引数コンストラクタ?

基本的に私はこれを完了する必要があります。以下は

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

は、私はもともと、タイムスタンプと日付の問題を発見した方法です。

背景

私のプレイ中に次のエラーを取得します! (またSquerylを使用して)2.0スカラアプリ:

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

startOrderの場合は、クラス定義で

val startOrder: Option[java.sql.Timestamp] 

として定義されます。私は、

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

がコンストラクタに渡されるべきだと信じています。

+0

ああ、私は 'Some()'はそれをラップしなければならないと思ったが、ラップしたものに混乱した。 – crockpotveggies

0

オプションは値かがあるかもしれません、すなわち場合は、使用されています。値がある場合のみをラップして使用します。しかし値がない場合は、なしを使用します。

関連する問題