Slick 的支持HList
通常是一件好事。不幸的是,它有自己的实现,几乎没有提供任何有用的操作。因此,我想改用无形 HList
的。这应该是“微不足道的”,但我不知道如何做到这一点。在网上搜索我没有发现任何证据表明有人设法完成了这项任务。
我认为实现 a 就足够了ProvenShape
(如此处所宣传的),但由于我无法理解Slick 的 (Proven)Shape
概念,因此我没有设法实现它。
我的主要目标是煮这个
class Users( tag: Tag )
extends Table[Long :: String :: HNil]( tag, "users" )
{
def id = column[Long]( "id", O.PrimaryKey, O.AutoInc )
def email = column[String]( "email" )
override def * = ( id, email ) <>[TableElementType, ( Long, String )](
_.productElements,
hlist => Some( hlist.tupled )
)
}
向下
class Users( tag: Tag )
extends Table[Long :: String :: HNil]( tag, "users" )
{
def id = column[Long]( "id", O.PrimaryKey, O.AutoInc )
def email = column[String]( "email" )
override def * = id :: email :: HNil
}