Esqueleto 查询 returns 常数值
Esqueleto query that returns constant value
是否可以使用 esqueleto 创建一个 returns 为常量值的查询?例如 SELECT 1
。
试试这个:
import Database.Esqueleto
-- | We have to specialize `val` or else the type inferencer
-- will complain about the `Esqueleto` instance.
val_ :: Int -> SqlExpr (Value Int)
val_ = val
query :: SqlPersistT IO [Value Int]
query = select $ return (val_ 1)
@chi 的评论很接近,但 1
需要提升为 SqlExpr
。 val
是通用的,依赖于 Esqueleto
class 实例。通常情况下,类型推断器会在您使用 from
并拉入 SQL table 后立即获取它,但由于其中的 none 在这里可用,我们必须手动专门化。
总体而言,这是一个很好的例子,说明类型classes 如何混淆含义并迫使人们求助于文档或论坛。
是否可以使用 esqueleto 创建一个 returns 为常量值的查询?例如 SELECT 1
。
试试这个:
import Database.Esqueleto
-- | We have to specialize `val` or else the type inferencer
-- will complain about the `Esqueleto` instance.
val_ :: Int -> SqlExpr (Value Int)
val_ = val
query :: SqlPersistT IO [Value Int]
query = select $ return (val_ 1)
@chi 的评论很接近,但 1
需要提升为 SqlExpr
。 val
是通用的,依赖于 Esqueleto
class 实例。通常情况下,类型推断器会在您使用 from
并拉入 SQL table 后立即获取它,但由于其中的 none 在这里可用,我们必须手动专门化。
总体而言,这是一个很好的例子,说明类型classes 如何混淆含义并迫使人们求助于文档或论坛。