@Override
    public boolean equals(Object other) {
        if ((this == other)) return true;
        if ((other == null)) return false;
        if (!this.getClass().isAssignableFrom(other.getClass())) return false;
        if (id == null) return false;

        final BaseEntity castOther = (BaseEntity) other;
        return id.equals(castOther.getId());
    }