我遇到客户端应用程序不完全了解数据库架构的情况。例如,我确信有一个email
字段。但作为查询结果,我想返回所有字段。它们没有以任何方式处理,我只是将结果序列化为JSON。但是,我想为表格选择和加入提供类型安全性。是否可以在Slick中(或者在其他库中)执行此操作?
例如,我有一个表users
,表格已知:
class Users(tag: Tag) extends Table[(String)](tag, "users") {
def email = column[String]("email")
def * = (email) // Not sure about this. Should it be rewritten?
}
是否可以以类型安全的方式查询此表(或与其他表连接):
emailDB.run(TableQuery[Users].filter(_.email === encryptedEmail).result)
但以某种方式获取所有记录的字段并将表格中的所有字段的结果集映射为Map[String, String]
或Map[String, Any]
或无形'HList?
P.S。我有一个相对疯狂的想法用一个函数替换通配符*
,懒惰地检查表模式并生成一个异构列表以映射到