【发布时间】:2014-11-12 00:04:40
【问题描述】:
我注意到,在 Grails 中对域类调用 list 时,返回的结果是代理实例,而不是实际的域类实例。
示例:
println User.list()
[ com.mypackage.security.User_$$_javassist_28 ]
在将这些代理类之一的实例与匹配的域类实例进行比较时,我收到错误的相等结果。
Groovy“与 Java 的区别”文档指出:
== 表示所有类型都相等。 ... 所以为了简单起见 == 在 Groovy 中表示 equals()
然而,当将域类与这些代理类之一进行比较时,这似乎并不正确。
有人可以对此提供一些见解吗?
有没有办法调用列表并接收实际的域类实例?
我宁愿不必提供自定义的 getHashCode 和 equals 实现来解决这个问题。
谢谢。
【问题讨论】:
-
你重写了域类中的equals()和hashCode()吗?
-
@evanwong - 不,我没有覆盖 equals 或 hashCode
标签: java hibernate grails groovy