HHH-3771 - Best practice for equals implementation

(cherry picked from commit 5ea187f035)
This commit is contained in:
Vlad Mihalcea 2016-10-06 15:14:09 +03:00 committed by Gail Badner
parent c621f3a869
commit 771b72ab15
1 changed files with 8 additions and 0 deletions

View File

@ -257,6 +257,14 @@ include::{sourcedir}/entity/listing9.java[]
As you can see the question of equals/hashCode is not trivial, nor is there a one-size-fits-all solution.
[TIP]
====
Although using a natural-id is best for `equals` and `hashCode`, sometimes you only have the entity identifier that provides a unique constraint.
It's possible to use the entity identifier for equality check, but it needs a workaround.
Check out https://vladmihalcea.com/2016/06/06/how-to-implement-equals-and-hashcode-using-the-entity-identifier/[this article for more details about the best way of mapping `equals` and `hashCode` using the entity identifier].
====
For details on mapping the identifier, see the <<chapters/domain/identifiers.adoc#identifiers,Identifiers>> chapter.
[[entity-pojo-optlock]]