I agree with "The general rule should be: if an object is an entity, its equals/hashCode should not depend on mutable properties", but why not letting the choice the user if he just want to use id properties (enough for ORM, faster) or all properties (may be useful outside ORM use case) if the user choose to use immutable properties ?