Implementando equals() y hashCode() utilizando igualdad de negocio en Hibernate

RECU-0663 (Recurso Ejemplo)

Descripción

La igualdad de clave de negocio significa que el método equals() solamente compara las propiedades que forman la clave de negocio. Esta es una clave que podría identificar nuestra instancia en el mundo real (una clave candidata natural). En este ejemplo vemos cómo podemos implementar los métodos equals() y hashcode() utilizando la igualdad de clave de negocio.

Ejemplos

public class Cat {

    ...
    public boolean equals(Object other) {
        if (this == other) return true;
        if ( !(other instanceof Cat) ) return false;

        final Cat cat = (Cat) other;

        if ( !cat.getLitterId().equals( getLitterId() ) ) return false;
        if ( !cat.getMother().equals( getMother() ) ) return false;

        return true;
    }

    public int hashCode() {
        int result;
        result = getMother().hashCode();
        result = 29 * result + getLitterId();
        return result;
    }

}

Contenidos relacionados