Slick codegen生成一个方便的Tables.scala,包含行和表的所有类。我们喜欢这种方法,因为我们可以使用关系设计并充分利用我们选择的SQL方言的全部功能。
但是,我们正在编写大量的锅炉板代码,以便从我们的REST API模型/域API模型转换为光滑的XYZ行,原因如下:
我们可以自动化转换,因此我们不必每次都有两个转换函数,从域模型到光滑案例类,反之亦然。特别是:
如何编写一个泛型函数,在具有相同HLIST表示的两个等效案例类之间提供隐式转换?
我们如何在具有不同HLIST表示的两个案例类之间编写泛型隐式转换,为不同成员提供了一组隐式转换(java.sql.Timestamp - > java.time.ZonedDateTime )
我们如何编写一个函数来在两个案例类之间进行转换,其中输出一个具有Repr = HList1 :: HList2而第一个具有Repr = HList2(即我们如何在HList2之前添加/附加到HList2从请求中提取的参数?)
答案 0 :(得分:2)
有少数几个库可以使用或阅读源代码来学习。例如https://index.scala-lang.org/davegurnell/bulletin/bulletin/0.7.0