Please see this example :
in your case, you subsitute TTimestamp for TLong (the backing JDBC type) and DateTime for Date (you might want consider using the joda date though).
implicit val dateAsLongTEF = new NonPrimitiveJdbcMapper[Long, Date, TLong](longTEF, this) {
def convertFromJdbc(v: Long) = new Date(v)
def convertToJdbc(v: Date) = v.getTime
}
implicit val optionDateAsLongTEF =
new TypedExpressionFactory[Option[Date], TOptionLong]
with DeOptionizer[Long, Date, TLong, Option[Date], TOptionLong] {
val deOptionizer = dateAsLongTEF
}
Note: the fact that you use TLong and TOptionLong means that you'll be able to compare a number column to a long backed column in the DSL.
Update: there is a limitation that prevents re registering a primitive type, so you'll need to have a wrapper type, I updated the example in the github project...