问题标签 [go-gorm]

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 回答
13124 浏览

mysql - 如何将`where in`与整数切片一起使用

http://jinzhu.me/gorm/advanced.html#sql-builder,我应该能够使用 WHERE IN 更新多行(?),并将切片传递给单个?而不是WHERE IN (?,?,?,?).

jinzhu.me 的例子如下db.Exec("UPDATE orders SET shipped_at=? WHERE id IN (?)", time.Now, []int64{11,22,33}):这是 gorm 的测试示例,显示它可以正常工作。https://github.com/jinzhu/gorm/blob/021d7b33143de37b743d1cf660974e9c8d3f80ea/main_test.go#L449

然而,这对我不起作用:

输出:

当我尝试硬编码时,我遇到了同样的问题:

输出:

解决方案:

代码实际上根本没有被窃听。我是不是很傻 - 我的实际代码中有一个额外的参数,而不是我应该有的。我只是没有正确地将其翻译为堆栈溢出。我的错。

0 投票
1 回答
1430 浏览

go - 如何正确定义gorm db接口?

我正在尝试对使用类型的方法进行单元测试,*gorm.DB并且很好奇如何正确定义一个接口,使我能够在不打数据库的情况下进行测试。

这是我想做的一个小例子:

结果是:

任何帮助,将不胜感激!


更新

这是我的实际应用程序代码:

结果是:

0 投票
2 回答
5145 浏览

go - GORM pq 连接太多

我在我的项目中使用 GORM,一切都很好,直到我收到一条错误消息:

我只是使用默认配置。在我对我的应用程序做了很多测试请求之后发生了错误。

重新启动应用程序后,错误就消失了。所以,我认为在我完成查询后不会释放 GORM 连接。我对 GORM 代码的检查不够深入,我只是在这里问一下,也许有人已经对此有过经验?

0 投票
1 回答
15480 浏览

go - GORM 不忽略带有 `gorm:"-"` 的字段

使用 Jinzhu 的 GORM 包,顺便说一句,我目前有这个结构:

但我也使用 Gorilla 的Schema包,因此任何表单值都会填充结构,但我不希望将PasswordC其保存到数据库中,因为它将是纯文本,因为普通Password字段会被加密,因此有关如何制作的任何信息GORM不保存场PasswordC

0 投票
0 回答
3104 浏览

go - Golang GORM 扫描到地图

我对我的 GORM 应用程序进行了一些查询,现在从数据库中扫描行正在使用 struct。但是当我需要做一些彼此不同的查询时,问题就来了,我需要为我拥有的每个查询创建另一个结构。

实际上我并不关心我从数据库中获得的数据,它只是转发给客户端。所以,对我来说,为每一个制作结构将是很多工作。所以我在想,如果我可以将它扫描到 map[string]interface{} 或 []map[string]interface{}。那么在 GORM 上可以做到吗?

而且我还在想另一件事是当列转换为接口{}时,日期呢?它会被转换成字符串吗?(也适用于其他类型,如 int、long、array 等)

0 投票
1 回答
472 浏览

sqlite - 在 Go GORM 中显示外键的外键

我能够通过这种情况部分解决这个问题

不幸的是,Preload() 函数似乎不适用于深入研究相关对象集。

为了澄清,我有以下模型:

当我创建一个包含新房间、游戏和玩家对象的新对象时,我会返回以下数据(json 编码):

但是,如果我尝试使用 preload() 函数查询结构,我会得到以下信息:

请注意,Players 部分现在为空。这是我的房间注册和房间查询功能:

0 投票
1 回答
1146 浏览

go - Golang GORM 和几个表的关联

结构:

我插入宽度:

但是当我打电话时gormConn.Find(&groups),我会得到[{id: 1, name: "Grrr", users: null}]而不是[{id: 1, name: "Grrr", users: [{id:1, name: "Usr"}]}]

同样在 SQL 表groups列中users未找到。(所有结构都会gormConn.AutoMigrate

0 投票
1 回答
3039 浏览

go - Gorm 在关联中创建重复项

我有以下 2 个具有多对多关系的结构。

如果我使用 DB.Create(my_message) 创建一条消息,一切正常:消息是在 DB 中创建的,还有一个位置,连接 message_locations 表中填充了消息和位置的相应 ID。

我所期待的是,如果位置已经存在于 DB 中(基于传递的 place_id 字段),gorm 将创建消息,检索位置 ID 并填充 message_locations。这不是正在发生的事情。由于 PlaceID 必须是唯一的,gorm 发现重复的键值违反了唯一约束“locations_place_id_key”并中止了事务。

另一方面,如果我使 PlaceID 不唯一,gorm 会创建带有关联的消息,但随后会为 Location 创建另一个重复条目。

在尝试保存消息之前,我可以测试该位置是否已经存在:

然后如果 true 关闭关联:

消息被保存而没有 gorm 抱怨,但是 message_locations 没有被填充。我可以“手动”填写它,因为我在测试它的存在时检索了位置 ID,但在我看来,它首先违背了使用 gorm 的目的。

我不确定正确的方法可能是什么。我可能遗漏了一些明显的东西,我怀疑我声明结构的方式可能有问题?欢迎提示。

更新 2016/03/25

我最终做了以下事情,我很确定这不是最佳的。如果你有更好的想法,请加入。

在测试该位置是否已经存在并且它确实存在之后:

0 投票
1 回答
1355 浏览

go - 如何切换数据库连接并将其共享到 Golang 中的模型?(狂欢+戈姆)

我想在 Revel + Gorm(或 Golang 中的任何其他 ORM)中设置数据库分片,如https://github.com/thiagopradi/octopus 。

我将在安全过滤器中获取数据库连接字符串(这是一个自定义过滤器,在 revel 的参数过滤器之后添加)。现在我需要在下一个名为db filter的自定义过滤器中切换 db 连接

并且还需要在 revel 应用程序启动时实现 db 连接池。

0 投票
0 回答
397 浏览

postgresql - 如何使用 gorm 在 API 响应中显示日期时间值

我正在使用 Golang 构建简单的 API,并且正在使用带有 Postgres 的 gorm。我将日期时间值存储time.Now()在数据库中,并且它正确存储。当我试图在 API 响应中显示这个值时,我得到了"0001-01-01T00:00:00Z"价值。

服务器日志:

获取全部功能:

为什么会这样?