为 Slick 中基于 MappedColumnType 的列指定排序顺序

Specifying sorting order for MappedColumnType based column in Slick

我为 Java8 LocalDateTime 自定义了 MappedColumnType,定义如下:

implicit val localDTtoDate = MappedColumnType.base[LocalDateTime, Timestamp] (
    l => Timestamp.valueOf(l),
    d => d.toLocalDateTime
)

该类型的列以这种方式在 table 映射中使用:

def timestamp = column[LocalDateTime]("ts")

一切看起来都不错,但我无法以不同的方向对该列进行排序,因为它缺少 .asc 和 .desc(并且实际上不是 ColumnOrdered 类型)。我如何为该类型添加排序功能?

您可以使用排序并执行 .desc.asc。但是,确保映射隐式 val 在您使用 .desc.asc 的查询范围内,否则您将得到编译错误。