2012-03-28 7 views
0

Squeryl benötigt einen Nullargumentkonstruktor, wenn Option[] in Feldern verwendet wird. Ich erkannte, wie ich einen solchen Konstruktor fürwie 0L erstellen konnte, aber wie erstelle ich so etwas für einen Timestamp oder ein Date?Scala Timestamp/Datum Null Argument Konstruktor?

Im Grunde muss ich dieses beenden:

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

Unten ist, wie ich ursprünglich den Zeitstempel und Datum Problem gefunden.

Hintergrund

in meinen Spielen den folgenden Fehler bekommen! 2.0 Scala app (auch unter Verwendung von Squeryl):

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

Dieses Feld in models.Job:

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

Und im Postgres DB wird es als integer definiert. Gibt es im Spiel eine andere Handhabung? 2.0 von Modellen, ist das ein Fehler, oder ist es ein Squeryl-Problem? Vielen Dank!

Stapelüberwachung, sieht aus wie Squeryl Problem

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] 

Antwort

4

Wenn startOrder ist definiert als

val startOrder: Option[java.sql.Timestamp] 

in Klassendefinition. Ich glaube,

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

sollte an den Konstruktor übergeben werden.

+0

Ah perfekt, ich dachte, 'Some()' musste es wickeln, aber ich war verwirrt darüber, was es verpackt, danke! – crockpotveggies

0

Option verwendet wird, wenn ein Wert optional ist, das heißt, wenn es ein Wert sein könnte oder nicht. Nur wenn es einen Wert gibt, verwenden Sie Einige Wrapping es. Aber wenn es keinen Wert gibt, verwenden Sie Keine.