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

前端之家收集整理的这篇文章主要介绍了sql – 在Slick中选择许多任意的列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在一个视图中在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.

猜你在找的MsSQL相关文章