Scala timestamp / date нулевой аргумент конструктор? - PullRequest
0 голосов
/ 28 марта 2012

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

По сути, мне нужно закончить это:

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

Это поле в моделях. Работа:

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

А в БД Postgres он определяется как 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]

Ответы [ 2 ]

4 голосов
/ 28 марта 2012

Если startOrder определяется как

val startOrder: Option[java.sql.Timestamp]

в определении класса. Я считаю,

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

следует передать конструктору.

0 голосов
/ 28 марта 2012

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

...