DefaultGroovyMethods排序导致版本变更和数据库更新

DefaultGroovyMethod sort leads to version change and database update

我有一个域对象列表,我想按特定 属性 对其进行排序。 Groovy 提供了很多函数以 "simple"/"groovy" 的方式处理列表。

问题是像

myDomainList.sort{it.position}

导致 myDomain-Tableversion 的更新。 我想要的是没有(任何)休眠调用(数据库更改)的预期排序行为。

我怎样才能做到这一点?

sort 改变它正在处理的集合,除非你像这样使用它:

myDomainList.sort( false ) { it.position }

这个variation of sort有3个参数,第一个是Iterable本身,第二个boolean(决定是否改变或创建一个新集合而不是改变原始集合)和第三个参数是关闭。

在前一种情况下,当 sort 修改列表时,域 class 被标记为脏,因此在事务关闭时刷新变得迫在眉睫。