2012-03-28 5 views
0

Squeryl требует использования конструктора нулевого аргумента при использовании Option[] в полях. Я понял, как создать такой конструктор для Long, например 0L, но как создать такую ​​вещь для отметки времени или даты?Scala timestamp/date zero конструктор аргументов?

По существу я должен закончить это:

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

Ниже, как я первоначально нашел метку времени и даты проблемы.

фон

Получение следующее сообщение об ошибке в моей игры! 2.0 Скала приложение (также с помощью 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 БД определяется как integer. Есть ли разница в игре? 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

Опция используется, когда значение является необязательным, то есть, если не может быть значение или нет. Только если есть значение, вы используете . Часть обертывает его. Но если нет значения, вы используете Нет.

Смежные вопросы