问题标签 [grails-3.3]

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

grails - Grails 3.3.5 -Dfile.encoding=UTF-8 不工作?

我发现grails -Dfile.encoding=UTF-8 war不适用于我的项目,但gradle -Dfile.encoding=UTF-8 assemble正在工作。也许grails不将系统属性传递给 gradle ?我该怎么办?

谢谢。

0 投票
1 回答
227 浏览

grails - Grails 3 enumType 用于枚举集

如何使用enumType:'identity'为Set定义映射?

在 Grails 3.3 中 enumType 成为具有 id 的枚举的强制要求(对于 3.2,它无需任何额外定义即可工作)。

使用枚举字段一切正常,但我不知道如何为枚举集编写映射

有任何想法吗?

我知道,我可以使用 enumType:'string'。不适合我

0 投票
0 回答
646 浏览

grails - grails 3.3 gorm where 使用投影计数()的查询不同于 list().size()

根据Gorm 6 文档第 7.4 节, Where Query 返回 a DetachedCriteria,它提供了一个方法,该方法count()应该返回查询返回的记录数。事实上,据我所知,如果dc是 的一个实例DetachedCriteria,那么

必须成立。

在包含投影的 Where Query 的情况下,count()似乎返回了其他内容。在这个简单的例子中:

打印的结果是:

如果我也打印query.list(),它显示为

也就是说,list()并且list.size()是一致的(并且匹配底层数据库上的 SQL 查询)。

有没有人知道为什么count()在这种情况下似乎关闭了?我发现有趣的是count()- 576返回的数字与返回rowCount()的第一条记录的投影相同......

目前,我想我会使用query.list().size().

0 投票
0 回答
81 浏览

grails - grails gorm critieria builder count返回不正确的值?

根据最新的 GORM 文档,CriteriaBuilder 的 count() 方法应该返回“结果计数”。

当 CriteriaBuilder 中使用投影时,我发现这不是真的;然后 count() 似乎返回类中的实例总数。

例如,在我的测试应用程序中,这段代码

如预期的那样打印 8 行:

而这段代码

印刷

这是TestA的实例总数。

在我看来,要么文档错误,要么 count() 代码错误。我希望问题出在代码上,因为我总是可以通过调用来获取类的实例总数gtest01.TestA.count()

0 投票
1 回答
100 浏览

grails - 属性上的 Grails 3.3 GORM CriteriaBuilder 函数

这些天来,我在大部分查询中都使用 Grails 3.3 和 GORM CriteriaBuilder,但我被困在如何调用属性上的函数——例如,调用 Date 属性上的 hour() 函数。如果我使用 where DetachedCriteria 我可以有这样的东西:

查找在 15:00 到 15:59 之间注册的所有学生。

但是,如果我改用 CriteriaBuilder,我不能这样做:

有没有办法在构建器 DSL 中实现这一点?我知道我可以回到域类并定义一个从日期字段中提取小时的映射,但这似乎有点笨拙。

0 投票
1 回答
244 浏览

grails - 带有对象列表的 Grails 自定义验证

我已经对 MultipartFile 进行了自定义验证。

但是我现在需要多个文件,我想更改自定义验证以获取列表并应用约束。

知道如何在自定义验证中使用集合吗???

0 投票
1 回答
183 浏览

hibernate - Grails 升级到 3.3.x:无法使用 grails 3.3.5 访问 persistentEntity.relationshipMap 和 persistentEntity.hasOneMap

根据 grails 3.3.x 的升级文档(http://docs.grails.org/3.3.x/guide/upgrading.html

GrailsDomainClass 已被 PersistentEntity.java 类弃用。

现在,我正在尝试将 3.2.11 上的 grails 应用程序升级到 3.3.5

在这里,我使用 PersistentEntity 删除了所有出现的 GrailsDomainClass。现在当我尝试打电话时:

例子:

它给了我 groovy.lang.MissingPropertyException: No such property: relationshipMap for class: DefaultGrailsDomainClass1_groovyProxy

和,

groovy.lang.MissingPropertyException:没有这样的属性:hasOneMap 类:DefaultGrailsDomainClass1_groovyProxy

有人可以帮助我使用正确的 api 来获取 relationshipMap 和 hasOneMap。我尝试对此进行了很多搜索,但直到现在都没有成功。

提前致谢!

0 投票
1 回答
533 浏览

grails-3.3 - grails ehcache - 找不到配置

Grails 3.3.1 ehcache 3.0.0.M1

由于我无法以编程方式创建正确运行的缓存,因此我尝试通过 xml 创建它。但我不知道把文件放在哪里。每次我启动应用程序时,日志输出都是这样的:

2018-07-02 12:21:21.168 WARN --- [main] nsehcache.config.ConfigurationFactory:未找到配置。从类路径中的 ehcache-failsafe.xml 配置 ehcache:jar:file:/home/user/.gradle/caches/modules-2/files-2.1/net.sf.ehcache/ehcache/2.10.4/9022b1eedfafa11039597b1c1918c1abe414df93/ehcache -2.10.4.jar!/ehcache-failsafe.xml

这些是我的 yml 设置:

那么我应该把我的放在哪个文件夹中ehcacheCustom.xml

感谢您的建议或工作示例

0 投票
2 回答
378 浏览

grails - Grails 3.3:只有第一个 save() 持久化吗?

是否仅保留域对象实例上的第一个 save() ?

环境:Grails 3.3.5,GORM 6.1.9 我相信,PostgreSQL 9.5,JDK 1.8.0_171,Ubuntu 16.04。

我的应用程序根据来自多个文本文件的输入创建 Recital(域对象)实例。这是一个数据库加载,所以一切都发生在一个控制器调用中,调用一个服务方法。一笔交易。

service 方法解析输入流以寻找演奏会。当它找到一个时,它会尝试使用findBy方法(演奏会编号)。如果有给定编号的 Recital,它会从输入更新它并执行 save()。否则,它会从输入创建一个新实例并执行 save()。failOnError到处都是很好的衡量标准。演奏会不属于任何东西,没有级联问题。

程序逻辑无法判断修改是否是实例的最后一次更新。因此,每次更改后都会有一个 save() 。但这不起作用。看来,您只能 save() 一次。

在数据库中找到的最终结果是只有第一个 save() 被持久化。在调试正在运行的程序时,我可以验证实例是否已在内存中完全更新。

如果这是正确的,文档应该说:save 方法通知持久性上下文应该在其当前状态下保存或更新实例。此后(在同一事务中)的任何和所有修改都将被忽略。除非使用 flush 参数,否则对象不会立即持久化...

PS save() 文档将“flush: true”解释为刷新持久性上下文。这对新手来说几乎没有解释价值。一些“冲洗”同义词是:清洗、擦除、删除、清除、清扫、擦除。数据库人员可能会将其视为 ROLLBACK 而不是 COMMIT。解释当然是 Hibernate 术语。如果 Grails doco 大部分是独立的,那就太好了。(同一文档中的附带问题。)

0 投票
1 回答
1346 浏览

grails - 如何将 Grails 从 Grails 2.4.4 升级到 Grails 3.3.6?

我需要将我的 grails 应用程序从 2.4.4 升级到 3.3.6。如果您可以分享您的经验,是否有任何聪明的方法或任何帮助。