问题标签 [grails-orm]

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

hibernate - 在会话中存储 Grails/GORM 域对象 - 为什么不呢?

我正在学习 Grails/GORM,据我了解,当前的最佳做法是不在会话中存储域对象(有关潜在修复,请参阅http://jira.codehaus.org/browse/GRAILS-978 )。

解决方法很简单;只需将域对象的引用 id 存储在会话中,然后在下一个请求中使用重新检索对象。

我的问题是:为什么域对象不能安全地存储在会话中?我试图了解它背后的技术细节。

谢谢!

0 投票
2 回答
6124 浏览

grails - o.errors.allErrors.each { println it } 保存域对象失败时默认

当使用 Grails/GORM 持久化域对象时,我经常发现自己想知道为什么 save() 调用会失败。

这可以通过添加逻辑轻松解决:

但是,在我执行 .save() 的任何地方添加它都会添加很多重复的代码。本着 DRY 的精神,我想将 Grails/GORM 配置为自动将任何保存错误打印到控制台(stderr)。那可能吗?如果没有,我如何扩展 GORM 以使其成为可能?

0 投票
1 回答
2323 浏览

hibernate - Grails 分页结果不一致

我正在我的 Grails 应用程序中进行一些分页。由于我正在做一些特殊的排序,我不能使用方便的排序/分页方法。这是我在服务器端的分页代码:

您会注意到注释掉的代码部分。通常,它不会被注释,因此我可以进行特殊排序,但它被注释掉以帮助减少导致此问题的变量数量。

当我查看结果的第 4 页时,我看到了一定的人员名单。当我重新加载结果的第 4 页时,我看到了一个稍微不同的列表——移动了 8 个人。

有谁知道为什么我会收到不一致的结果?每次查看我的结果的第 4 页时,我希望得到相同的 100 人(如果你没有猜到,我正在显示人们的名字)。'offset'、'max' 和 'sort' 值在两个请求中是相同的。

任何帮助表示赞赏。谢谢,

安德鲁

更新....

这是应该工作的更直接的方法,除非我收到异常。如果我删除“createAlias”行,我不会收到异常。不幸的是,我需要别名才能加入关联的表。

例外:

原因:java.lang.IllegalArgumentException: call to [list] not supported here

在 grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:847)

在 ClientContactController$_closure21_closure39_closure44.doCall(ClientContactController:494)

0 投票
1 回答
4527 浏览

hibernate - 在 Grails 中使用 GORM 时的并发性

假设我有一个计数器函数,它使用原始 SQL 更新计数器:

数据库将确保按预期处理对计数器的两个并发调用 - 所有调用都会以一个增量更新计数器,并且不会丢失任何更新。

我不想通过发出原始 SQL 命令来执行此操作,而是使用 GORM。天真的方法是这样的:

在这种情况下,我假设如果两个线程同时调用 updateCounter() 方法,更新可能会丢失。处理此并发问题的正确“Grails/GORM 方式”是什么?

0 投票
4 回答
4188 浏览

grails - Grails/GORM 中的遗留映射:1:N 关系中的一个域类和两个表

假设我有两张表employeesalary具有1:N 的关系(一个salary 可以与许多员工相关联)。

在纯 SQL 中,表将与:

假设以下由 GORM 驱动的域类,我如何将遗留数据库结构映射到该类?

澄清 #1:我只想要一个包含两个表中的数据的域类。因此,添加另一个类不是一种选择。

澄清 #2:我试图找到答案的问题只是“如何使用 Grails/GORM 将两个表映射到一个类”?如果您认为不可能这样做,那么请在您的回答中清楚地说明这一点,而不是试图重述问题。

0 投票
1 回答
7117 浏览

grails - Grails/GORM 默认获取策略:何时将 fetchMode 设置为“eager”?(渴望与懒惰)

关于何时在域类中将 fetchMode 设置为“eager”的一些一般准则是什么?fetchMode“eager”与默认“lazy”的优缺点?

请包括一些具体的示例/用例,显示何时使用“eager”(fetchMode=eager),何时不使用(fetchMode=lazy)。

0 投票
2 回答
5841 浏览

grails - Grails/GORM:belongsTo在1:N关系中的含义

在普通的一对多映射中,“一”方是关联的所有者。为什么有人会使用 belongsTo-mapping 进行这样的映射?我错过了指定 belongsTo 的一些副作用吗?

换句话说:在 GORM 中指定 belongsTo-mapping 与不指定有什么影响?

0 投票
3 回答
894 浏览

grails - Groovy 域类中的“public class Foo”与“class Foo”

以下 Groovy 代码在写入 grails-app/domain/Foo.groovy 时创建了一个名为 Foo 的 GORM 持久域类:

但是,如果我改为编写“public class Foo”,则该类不会被 GORM 持久化(即没有注入 save() 方法,没有创建数据库表等):

我正在运行 Grails (1.1) 的最新稳定版本。

问题:这是一个错误还是预期的行为?为什么?

更新#1:相关子问题:我是唯一遇到这个问题的人吗?很高兴知道其他人是否能够复制这一点。谢谢!

0 投票
2 回答
2520 浏览

grails - GORM 中的复合外键列

我需要为 GORM 中的复合外键自定义列名,但我没有找到任何说明如何做到这一点的文档。我知道如何自定义 PK 列,以及如何自定义单列 FK,但不知道如何自定义多列 FK。有可能吗?

谢谢。

0 投票
1 回答
1472 浏览

grails - 在遗留数据库之上在 Grail 中建模多对多关系

我在 LAMP 上构建了一个简单的票证记录应用程序。

我目前正在玩grails。我想构建一个使用现有 MySql 数据库的演示应用程序,而无需过多地更改数据库。

数据库中存在多对多关系:'client' 表通过'cliet_contact' 表映射到'user' 表(即不是标准的'client_user' 约定)。

我如何使用 grail 1.1 将其转换为 grails 域类?

任何帮助,将不胜感激。

谢谢!