当 Haskell 持久库中需要“Key”时,如何通过“Int”获取实体?

2024-06-25

我将持久性 orm 与 scotty Web 框架一起使用。

我想通过 id 从 db 获取值。这些是来自 GET 请求的

有“get”函数接受“Key Entity”变量并返回“Maybe Entity”。

我使用以下代码从数据库获取值

k <- keyFromValues $ [(PersistInt64 myOwnIntVarFromRequest)]
case k of
    Left _ -> {-some processing-}
    Right x -> do
    t <- liftIO . runDb $ get (x::Key Post) --Post is one of my models
    case t of
        Nothing -> {-processing-}
        Just x -> {-processing-}

这些代码极其丑陋。但我不知道如何做得更好

所以我的问题是如何在不调用 keyFromValues 的情况下获取“Key Entity”类型的变量。

PS抱歉我的英语不好


您可以使用toSqlKey http://www.stackage.org/haddock/lts-1.2/persistent-2.1.1.4/Database-Persist-Sql.html#v:toSqlKey为了那个原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 Haskell 持久库中需要“Key”时,如何通过“Int”获取实体? 的相关文章

  • 为什么以下内容会并行运行而不是顺序运行?

    给定以下函数evalPair parPair and deepSeq分别 evalPair Strategy a gt Strategy b gt Strategy a b evalPair sa sb a b do a lt sa a b
  • 没有由文字“1”产生的 Num String 实例

    main do putStrLn myLast 1 2 3 4 myLast a gt a myLast x x myLast xs myLast xs 当我尝试运行此代码时 我收到此消息 没有由文字 1 产生的 Num String 实例
  • 如何处理或避免BlockedIndefinitelyOnSTM异常?

    我花了很多时间来解决我正在处理的应用程序中遇到的问题 该应用程序是一个 Web 应用程序 使用 scotty 公开 REST 端点 它使用一个TVar保持其更新的状态STM a由前端层触发的动作 由于该应用程序基于事件溯源原则 因此业务层生
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch
  • 有 Haskell 日期库吗?

    Haskell 中是否有一个函数允许我输入日期的组成部分 如字符串表示形式或日月年组成部分 我可以从中获取信息 如星期几 一个月中的天等 我在网上查了一下 看起来有很多自定义库 但我希望 ghci 10 6 4 的标准前奏库中有一个没有很好
  • 不明白这个 haskell 代码中的内容

    我有一些 Haskell 代码 我正在尝试完成它 但我不明白其中发生了什么 type Bag a a gt Int emptyB Bag a emptyB e gt 0 countB Eq a gt Bag a gt a gt Int co
  • haskell复制目录的方法是什么

    我发现自己用 Haskell 编写越来越多的脚本 但在某些情况下 我真的不确定如何 正确 地做到这一点 例如递归地复制目录 a la unixcp r 由于我主要使用 Linux 和 Mac OS 所以我通常会作弊 import Syste
  • 系统地将函数应用于 haskell 记录的所有字段

    我有一条包含不同类型字段的记录 以及一个适用于所有这些类型的函数 举一个小 愚蠢 的例子 data Rec Rec flnum Float intnum Int deriving Show 比如说 我想定义一个为每个字段添加两条记录的函数
  • 计算出类型索引的自由 monad 的细节

    我一直在使用免费的 monad 来构建 DSL 作为语言的一部分 有一个input命令 目标是在类型级别反映输入原语期望的类型 以提高安全性 例如 我希望能够编写以下程序 concat Action String String concat
  • `arr fst` 是如何自然变换的?

    I asked 这个问题 https stackoverflow com q 62733726 11143763不久以前 这是关于以下箭头定律 arr fst first f f arr fst Category k gt k b c gt
  • 如何计算函数被调用的次数,FP方式

    我目前正在通过SICP http mitpress mit edu sicp 与哈斯克尔 练习 1 15 询问一个函数被调用了多少次 这个想法可能是您应该使用替换方法 但我想知道如何在代码中执行此操作 在命令式语言中 我们可以保留一个全局变
  • 在类型级别未定义

    通常 当我使用 Haskell 代码时 我会使用类型注释将内容存根并undefined foo String gt Int foo undefined 是否有类型级别的 未定义 我可以以类似的方式使用 理想情况下 与某种注释结合使用 typ
  • Haskell Stack 包安装错误

    user stack install dictionaries Error While constructing the build plan the following exceptions were encountered In the
  • 不明确的类型变量

    相关我之前关于遍历数据结构的问题 https stackoverflow com questions 1855371 avoiding boilerplate when dealing with many unrelated types 当
  • 优化计算 200 万以下所有素数总和的 Haskell 代码

    欧拉计划中的问题 10 我在那里看到了一些讨论 但仅限于 C 我用下面的代码来计算 print sum sieve 2 2000000 where sieve sieve x xs x sieve filter 0 mod x xs 需要很
  • 为什么阴谋集团重新安装“总是危险的”?

    使用 Cabal 重新安装软件包时 通常会看到以下警告 警告 请注意 重新安装总是很危险的 无论如何继续 此消息背后的一些原因是什么 目前 重新安装软件包意味着破坏性地覆盖已安装的软件包 如果旧包对系统有任何反向依赖性 它们将不再工作 为了
  • 如何在 Haskell 中编写 MST 算法(Prim 或 Kruskal)?

    我可以用 C 或 Java 编写 Prim 和 Kruskal 算法来查找最小生成树 但我想知道如何在 Haskell 中以 O mlogm 或 O mlogn 实现它们 纯函数式程序更好 多谢 正如斯文宁森所说 优先搜索队列 http h
  • Java 中更高级的泛型

    假设我有以下课程 public class FixExpr Expr
  • Haskell 类型族中的类型歧义

    我正在尝试整理以下课程Domain及其实例TrivialDomain LANGUAGE TypeFamilies data Transition Transition class Domain d where type Set d type
  • Haskell:打印文本编码

    Haskell 新手在这里 ghc version The Glorious Glasgow Haskell Compilation System version 6 12 1 在尝试调试第三方 Haskell 程序中与区域设置相关的奇怪错

随机推荐

  • 尝试在 Prolog 中实现交换律

    我正在尝试创建一个知识库 我的问题有terminal 1 and connected 2我定义了以下规则 connected X Y connected Y X 由于我现在明白的原因 我认为 这进入了无限递归 然后 我尝试搜索SO并发现了这
  • php的多重上传图片功能?

    您好 我想为我创建一个功能 以便能够在一次提交中上传多个图像 下面是我的代码结构
  • 为什么blur.js 试图访问“none”文件?

    我正在尝试使用blur js 在我的网站上创建模糊效果 以便您可以看到内容背后的网站背景 但是 它似乎正在尝试访问名为 none 的图像 这是 chrome javascript 日志的输出 container blurjs source
  • 将字符串日期与今天的日期进行比较

    所以我有一个字符串 2014 06 30 15 27 如果是今天的日期 它应该只返回 15 27 否则 30 06 2014 我已经尝试过 simpleDateFormat parse 但效果不是很好 holder data setText
  • Android Studio 1.0 编译错误 - 沿边缘不能有多个标记区域

    我刚刚安装了 Android Studio 1 0 并且正在尝试编译我在 Eclipse 上开发的代码 但是当我编译代码时 我的图像文件中会显示很多错误 如下所示 Error Can t have more than one marked
  • React Router 深度链接

    这是我第一次使用 React 和 React Router 我遇到了一些深层链接问题 我构建了一个简单的 SPA 在 React Router 的帮助下 我可以导航到 mysite com work mysite com about 和 m
  • 在大型团队中使用 git VS Mercurial 和 Xcode 进行 iOS 开发有何优缺点?

    我们希望在一个项目上一起工作 签出 签入文件 一些开发人员推荐 git 其他开发人员更喜欢 Mercurial 有没有人对这两者都有经验 并且能告诉我为什么我应该花时间在不与 Xcode 集成的 Mercurial 上 而不是只使用集成的
  • python 中字符串到 OrderedDict 的转换

    我通过导入集合创建了一个 python 有序字典并将其存储在名为 filename txt 的文件中 文件内容看起来像 OrderedDict 7 0 6 1 5 2 4 3 我需要从另一个程序使用这个 OrderedDict 我这样做 m
  • 加载图像时出现 OutOfMemoryError

    我有一个显示图像的简单页面 来源是一个 URL var img new Image var source new UriImageSource Uri new Uri string Format http xxxx com imagem 0
  • 使用仪器工具定位泄漏

    我正在尝试使用泄漏工具查找我的应用程序中的泄漏 当应用程序启动时 我可以看到 106 个泄漏 但我很难找到它们 在图像中 您可以看到列表的一部分 但如何深入到生成泄漏的类或代码行 寻找泄漏并不是那么简单 你需要戴上侦探帽 从外套中拿出放大镜
  • 如何将函数应用于表以将 P 值输出为新行

    我有这个简单的数据框 sum 列表示行的总和 我想使用 prop test 来确定每列的 P 值 并将该数据显示为标记为 p 值的附加行 我可以按以下方式使用 prop test 来确定任何单个列的 p 值 但无法弄清楚如何使用单个函数将其
  • 处置实现 IDisposable 的成员

    在我的 Dispose 方法 如下所示 中 每次我想调用 someObj Dispose 时 我也会检查 someObj null 这是因为我的设计不好吗 他们是否有一种更干净的方法来确定调用对象中使用的所有成员 实现 IDisposabl
  • 通过 ClickOnce 部署自动安装更新

    我想部署我的项目单击一次 http en wikipedia org wiki ClickOnce部署 但是当我这样做时 它在最终用户计算机的对话框中询问 XXXX 已推出新版本 您想立即下载吗 但我的最终用户don t有鼠标或键盘 所以我
  • 如果配置更改则为空对象引用

    如果配置仅更改 我会得到空对象引用LinearLayout对象 景观模式我必须setVisiblity View GONE对于除一个视图之外的所有视图 portrait模式我必须setVisibility View VISIBLE对于所有视
  • 无法解析请求正文

    我一直在尝试解决以下错误 但无法解决 下面是代码 HttpPost public async Task
  • 全局访问 Ninject 内核

    这个问题与 Ninject 没有具体关系 这更多的是一个一般性的编码问题 但我将其发布在这里 以防在 Ninject 中可能有更好的方法来完全处理该问题 而不是我正在尝试做的事情 我想知道是否可以从 Global asax 中的实例全局访问
  • 按钮 Onclick 调用 Javascript,后者调用 PHP 文件,该文件添加到 Mysql 数据库

    我需要添加到数据库的帮助 我想从按钮单击方法调用 javascript scrt Javascript 脚本 我想调用一个 php 文件 其中包含一些添加到 MySQL 数据库的代码 我确实尝试了 20 多个网站 但没有任何帮助 如果 AJ
  • Distinct 不适用于 LINQ to Objects [重复]

    这个问题在这里已经有答案了 class Program static void Main string args List
  • 通过 Appcelerator Cloud API 发送电子邮件

    我试图在我的 Titanium 应用程序中通过 Appcelerator Cloud Service 发送电子邮件 我使用的代码是标准代码 在文档站点上给出 但电子邮件并未发送 Cloud Emails send template welc
  • 当 Haskell 持久库中需要“Key”时,如何通过“Int”获取实体?

    我将持久性 orm 与 scotty Web 框架一起使用 我想通过 id 从 db 获取值 这些是来自 GET 请求的 有 get 函数接受 Key Entity 变量并返回 Maybe Entity 我使用以下代码从数据库获取值 k l