我有一个域对象列表,我想按特定属性进行排序。 Groovy提供了许多功能以“简单” /“groovy”方式处理列表。
问题是像
myDomainList.sort{it.position}
导致
version
中的myDomain-Table
更新。我想要的是没有(任何)休眠调用(数据库更改)的预期排序行为。
我该如何实现?
最佳答案
sort
对正在处理的集合进行突变,除非您像这样使用它:
myDomainList.sort( false ) { it.position }
这个variation of sort带有3个参数,第一个是Iterable本身,第二个
boolean
(用于决定是突变还是创建新的集合,而不是对原始集合进行突变),第三个参数是闭包。在前一种情况下,当
sort
修改列表时,则将域类标记为脏,因此在事务关闭时即将进行刷新。
关于sorting - DefaultGroovyMethod排序可导致版本更改和数据库更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021976/