Как правильно реализовать equals и hashCode для сущностей с учетом id и класса

JavaООПпаттерны проектированияравенствохеш-код