为 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
的查询范围内,否则您将得到编译错误。
我为 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
的查询范围内,否则您将得到编译错误。