问题标签 [hugsql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
testing - 测试错误:如何使用:id?
我第一次尝试在 、 和 中luminus
执行h2
此hugsql
操作clojure
。
该insert
语句在连接到h2
数据库的 SQL 客户端中输入时工作正常,但在代码中失败。似乎它与查询的WHERE id = :id
子句有关get-assessor
,但找不到这样做的方法。
在文件中./resources/sql/queries.sql
在文件中:./test/db/core.clj
返回(截断)的消息是:
如何解决这个问题?
postgresql - YesQL/pgsql“无法确定参数$1的数据类型”
我正在尝试对NULL
特定搜索和返回索引重用查询(基本上实现了这里讨论的想法http://dev.solita.fi/2015/12/29/SQL-in-applications.html)。但是,我ERROR: could not determine data type of parameter $1
随时尝试将函数体与[]
参数一起使用。
这是clojure
这是sql
postgresql - 使用 Postgres 在 HugSQL 或 YesQL 中转换多个值
我正在尝试将 IP 地址列表转换为::inet
但只有列表中的最后一个元素被转换。
我尝试了以下方法,但似乎没有任何效果。
address::text
如果输入地址没有指定子网,我不能简单地转换,因为匹配可能会失败。
clojure - 无法使用 Midje 模拟 HugSQL 生成的数据库函数
我在使用 Conman 帮助程序库模拟从 HugSQL 模板生成的数据库访问函数时遇到问题。这些函数在运行时定义如下:
(conman/bind-connection *db* file)
就我而言,我正在对该服务功能进行单元测试:
其中db/create-user!
函数由Conman生成。但是,当尝试使用此 Midje 测试模拟该功能时,我收到以下错误消息:
我从服务和测试中完全相似地引用了动态创建和模拟的函数,但是 midje 不认为它是同一个函数。我还尝试通过 var ( #'musician.user.db/create-user!
) 引用该函数,并使用服务和测试的完整路径musician.user.db/create-user!
,但这些都不起作用。从 REST API 和 REPL 测试时,服务代码确实有效,但我无法设置此测试。
似乎问题在于 midje 无法模拟该函数,因为它在运行时之前是未知的。这仅仅是正确引用函数的问题,还是无法用 Midje 模拟这些函数?
clojure - 如何在 HugSQL 结果中将返回的地图转换为 json csv
我正在尝试使用 HugSQL 从我的数据库中选择一些记录,然后我取回记录我在尝试这段代码时遇到了一些问题:
和
实际结果:db-records 有一个地图列表(返回的每条记录的地图),如下所示:
我想知道如何将此映射列表转换为 Json 字符串文件或 CSV 文件以将其推送到我的端点。在处理非字符串值时,例如
:时间处理 1994-01-01 00:00:00.000
一旦我将此测试字符串放入以 (comment (def testmap {input_test_Data}))
无效数字格式进行测试,我就会看到这些错误,我还发现
:dss_update_time 在我的数据库中是“15/JAN/19”
但是在 HugSQL 结果中,我得到了这样的结果
:dss_update_time #inst “2019-01-14T15:48:46.000000000-00:00”
基本上我将如何确保我取回所有数据至少我的问题的第二部分真的很感激一些帮助。谢谢
postgresql - 使用 HugSQL 在 ON CONFLICT DO UPDATE 的情况下一次将多行插入 PostgreSQL 表
我正在使用 PostgreSQL,并希望使用一条语句INSERT
一次处理多行。ON CONFLICT DO UPDATE
我有这样的事情:
p
主键在哪里。
我称之为:
(add-things! {:values [[1 1] [2 3]]})
但这会返回:
org.postgresql.util.PSQLException: ERROR: column reference "foo" is ambiguous
.
使用SET my_table.foo = :foo
(带有关键字参数)导致,因为使用语法clojure.lang.ExceptionInfo: Parameter Mismatch: :foo parameter data not found
时没有关键字参数。:tuple*:values
知道如何做到这一点吗?也许通过在 HugSQL 查询中使用 Clojure 代码?
clojure - Building WHEN clause with a clojure expression in hugsql
I have a database with a status
entity that I'd like to be able to fetch in many different ways. As a result, I'd like to build the WHEN
clause of my query based on the content of a map.
For instance, like this:
I'm struggling using hubsql's clojure expressions. I am doing the following:
However, here is how the request is prepared by hugsql:
Whereas I want something like:
clojure - HugSQL 查询中的嵌套命名空间键
我有一个带有命名空间键的嵌套映射,如下所示:
我不想将其简化为平面地图,而是将其直接传递给 HugSQL 函数。文档说 HugSQL 支持深度参数获取和命名空间键,但我不确定如何组合它们。
现在,如果我执行它使用原始地图生成的函数,我会得到:
我想 SQL 中的变量命名约定是问题的根源:
但我不确定正确的值应该是多少。
clojure - 为什么我在 Luminus (Clojure) 中看到参数不匹配错误?
编辑(固定)...
如果您正在关注Luminus 留言簿教程或修改其中的部分内容,您可能会遇到类似 的错误Parameter Mismatch: :name parameter data not found.
,并且无论您使用什么参数,它都可能不会消失。您可能会发现您正在尝试调用一个不存在的函数,而 Conman/HugSQL 不知道如何处理它。
我的问题的答案在以下部分:
代码的相关部分在myapp.routes.home/create-user!
下面的代码不正确:
我通过更改它来修复它,如下所示:
所以事实证明我向 db/create-user 传递了错误数量的参数!似乎康曼不知道如何调用查询。
此外,我以草率的方式修复了迁移中的一些问题 - 通过编辑已经发生的迁移。我注意到 Conman 似乎没有注意到您是否正在更改旧的迁移和 queries.sql 文件。如果您发现 query.sql 没有反映您的数据库 api(因此当您将 id 字段设置为自动增量时,您仍然会收到有关 ID 参数的消息,那么您需要让 Conman 重新生成您的数据库 API。
这可以在 REPL 中完成,如下所示:
下面是原帖
非常简单的应用程序我或多或少地基于Luminus 留言簿教程,我只是想在http://localhost:3000/userscreate-user!
测试表单。每当我提交表单时,我都会得到一些 It's not specific to 的变体。无论我发送什么参数,我都会得到或类似的东西。Parameter Mismatch: :username parameter data not found.
:username
:first_name parameter data not found.
我已经完成了println
,myapp.routes.home/create-user!
我知道参数似乎都在那里。我不确定如何进一步追踪它。我会很感激任何关于调试的建议,如果有人看到我做错了什么,那将非常有帮助。
堆栈跟踪:
clojure - 如何将 HugSQL 参数扩展为多个类似语句
有谁知道如何做到这一点?
(get-lists ["free" "food"])
->
我努力了:
但这当然行不通。有人可以指出我正确的方向吗?