加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 在Slick中选择许多任意的列

发布时间:2020-12-12 08:42:13 所属栏目:MsSql教程 来源:网络整理
导读:我试图在一个视图中在Slick中运行一个SELECT *样式的查询.理想情况下,我最终会得到一个函数,您可以传递一组列名称作为Seq [String],它将执行查询SELECT col1,col2,… FROM view.如果这是不可行的,那么只需返回所有列(SELECT * FROM view)即可. 我知道我可以通
我试图在一个视图中在Slick中运行一个SELECT *样式的查询.理想情况下,我最终会得到一个函数,您可以传递一组列名称作为Seq [String],它将执行查询SELECT col1,col2,… FROM view.如果这是不可行的,那么只需返回所有列(SELECT * FROM view)即可.

我知道我可以通过为此视图定义一个Table类和一个附带的case类来实现,但是其中一些视图具有数百列(由于元组上有22个元素限制,因此需要嵌套元组)有很多意见我必须这样做,所以这是很多代码写/生成/维护.如果有可能,我想避免.

这样做在Slick吗通过定义Table类而不必在静态代码中定义列(初始化具有动态列字符串列表的某些类是可以接受的),或者通过使用sql“”“…”“”而不是以某种方式生成SQL查询获取.as […]来处理返回一组任意长度的列?

我不需要对实际的列类型做任何特别的事情:在数据库端我们有一个混合的类型,但如果它们都被视为Slick一边的文本列,对我来说会很好.

解决方法

光滑不适合您的要求.

您想要访问任意列的那一刻(例如通过使用列名称的List [String]),您将失去Slick提供的所有类型的安全优势,因为它无法验证模式.

这意味着你必须离开Slick的表类,并使用生成的SQL(使用String查询)去完全动态的解决方案.

而Slick确实允许您手动编写SQL(请参阅StaticQuery.query函数),其他库更适合于该任务.我建议您看看ScalikeJDBC.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读