问题标签 [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.

0 投票
1 回答
302 浏览

testing - 测试错误:如何使用:id?

我第一次尝试在 、 和 中luminus执行h2hugsql操作clojure

insert语句在连接到h2数据库的 SQL 客户端中输入时工作正常,但在代码中失败。似乎它与查询的WHERE id = :id子句有关get-assessor,但找不到这样做的方法。

在文件中./resources/sql/queries.sql

在文件中:./test/db/core.clj

返回(截断)的消息是:

如何解决这个问题?

0 投票
1 回答
1579 浏览

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

0 投票
2 回答
347 浏览

postgresql - 使用 Postgres 在 HugSQL 或 YesQL 中转换多个值

我正在尝试将 IP 地址列表转换为::inet但只有列表中的最后一个元素被转换。

我尝试了以下方法,但似乎没有任何效果。

address::text如果输入地址没有指定子网,我不能简单地转换,因为匹配可能会失败。

0 投票
0 回答
138 浏览

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 模拟这些函数?

0 投票
1 回答
149 浏览

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”

基本上我将如何确保我取回所有数据至少我的问题的第二部分真的很感激一些帮助。谢谢

0 投票
1 回答
394 浏览

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 代码?

0 投票
1 回答
131 浏览

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:

0 投票
1 回答
171 浏览

clojure - HugSQL 查询中的嵌套命名空间键

我有一个带有命名空间键的嵌套映射,如下所示:

我不想将其简化为平面地图,而是将其直接传递给 HugSQL 函数。文档说 HugSQL 支持深度参数获取和命名空间键,但我不确定如何组合它们。

现在,如果我执行它使用原始地图生成的函数,我会得到:

我想 SQL 中的变量命名约定是问题的根源:

但我不确定正确的值应该是多少。

0 投票
2 回答
391 浏览

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.

我看到的错误页面

这是扩展的参数部分: 它说我要发送的参数

我已经完成了printlnmyapp.routes.home/create-user!我知道参数似乎都在那里。我不确定如何进一步追踪它。我会很感激任何关于调试的建议,如果有人看到我做错了什么,那将非常有帮助。

堆栈跟踪:

0 投票
2 回答
99 浏览

clojure - 如何将 HugSQL 参数扩展为多个类似语句

有谁知道如何做到这一点?

(get-lists ["free" "food"])->

我努力了:

但这当然行不通。有人可以指出我正确的方向吗?