grails - Grails:比较两个未保存的域类对象总是返回false

标签 grails groovy comparison equals grails-domain-class

我需要比较几个尚未保存的域类对象,但是,我总是从比较中得到错误的结果。事实证明,即使以下比较也将返回false:

new DomainClass().equals(new DomainClass())

由于两者都是全新的对象,因此它们都应具有相同的数据并且彼此相等。不幸的是,equals方法(或==运算符)返回false。还有另一种进行此比较的正确方法吗?

最佳答案

您的代码与此相同:

a = new DomainClass();
b = new DomainClass();

a.equals(b)

因此,只要 a b 没有引用同一对象,测试就必须返回false。

如果要基于值(value)的比较:
遍历各个字段,并将其一一比较

或者在这里检查more formal way of doing it

关于grails - Grails:比较两个未保存的域类对象总是返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990266/

相关文章:

java - 如何从liberty-server build.gradle文件中排除传递依赖项

java - 哪种方法更好,为什么?

Grails GORM 从表中返回随机行?

grails - IntelliJ IDEA 13.1上的Groovy Grape配置

database - 可以在 Groovy 中的 if 语句中为字段赋值导致数据库更新记录

groovy - 如何正确比较groovy中的null?

swift - 在 Swift 3 中,比较两个闭包的方法是什么?

比较两个列表并打印出差异的 Pythonic 方法

hibernate - Transctional readOnly=true & 在 Grails 和 Postgres 中保存对象

grails - 锁定Grails无法正常工作