Используется ли какая-либо модификация байтовых кодов исходным классам?
Или, может быть, Hibernate получает грязное состояние, сравнивая данный объект с ранее сохраненной версией?
У меня проблема с методами hashCode() и equals() для сложных объектов. Я считаю, что было бы очень медленно вычислять хэш-код, если у объекта есть члены коллекции, а также циклические ссылки.
Если Hibernate не будет использовать hashCode()/equals(), чтобы проверить грязное состояние, я полагаю, что я не должен использовать equals()/hashCode() для объекта сущности (не объекта значения), но я также боится, если одного и того же оператора (==) недостаточно.
Итак, вопросы:
-
Как Hibernate знает, изменилось ли свойство объекта?
-
Вы предлагаете переопределить методы
hashCode()/equals()для сложных объектов? Что делать, если они содержат циклические ссылки?И, также,
-
Достаточно ли
hashCode()/equals()только с полемid?
