2

Say I have a case class that maps to table with two Timestamp fields in my database, one of which can be null. I want to define my own custom DateTime class to map to the timestamp fields:

case class DateTime(val time: Long) extends TimestampField(new Timestamp(time)) {
    def this() = this(System.currentTimeMillis)
    def this(ts: Timestamp) = this(ts.getTime)
}

And I define my entity class thus:

case class Period(id: Int, name: String, begin: DateTime, end: Option[DateTime])

But as soon as I run my program I get the exception below. Can someone tell me what I am missing?

...
Caused by: java.lang.RuntimeException: error while reflecting on metadata for (Some(private final scala.Option data.Period.end),Some(public scala.Option data.Period.end()),None,Set()) of class data.Period
        at org.squeryl.internals.PosoMetaData$$anonfun$6.apply(PosoMetaData.scala:126)
        at org.squeryl.internals.PosoMetaData$$anonfun$6.apply(PosoMetaData.scala:83)
        at scala.collection.immutable.HashMap$HashMap1.foreach(HashMap.scala:221)
        at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:428)
        at scala.collection.immutable.HashMap$HashTrieMap.foreach(HashMap.scala:428)
        at org.squeryl.internals.PosoMetaData.<init>(PosoMetaData.scala:83)
        at org.squeryl.View.<init>(View.scala:64)
        at org.squeryl.Table.<init>(Table.scala:29)
        at org.squeryl.Schema.table(Schema.scala:345)
        at org.squeryl.Schema.table(Schema.scala:341)
        at data.Library$.<init>(Library.scala:211)
        at data.Library$.<clinit>(Library.scala)
        ... 17 more
Caused by: java.lang.RuntimeException: class data.Period used in table Period, needs a zero arg constructor with sample values for Option[] field end
        at org.squeryl.internals.Utils$.throwError(Utils.scala:95)
        at org.squeryl.internals.FieldMetaData$$anon$1.build(FieldMetaData.scala:490)
        at org.squeryl.internals.PosoMetaData$$anonfun$6.apply(PosoMetaData.scala:118)
        ... 28 more
user79074
  • 4,937
  • 5
  • 29
  • 57

0 Answers0