@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) {
            return false;
        }
        ApiPlanBeanCompositeId that = (ApiPlanBeanCompositeId) o;
        return apiVersion != null && Objects.equals(apiVersion, that.apiVersion)
                       && version != null && Objects.equals(version, that.version)
                       && planId != null && Objects.equals(planId, that.planId);
    }
Composite ID for {@link ApiPlanBean}

@author Marc Savy {@literal <marc@blackparrotlabs.io>}
manager/api/beans/src/main/java/io/apiman/manager/api/beans/apis/ApiPlanBeanCompositeId.java