Мне интересно, как написать корректные equals () и hashCode () для объектов Hibernate, имеющих отношение Lazy Loaded ManyToOne к другому объекту, который важен в качестве бизнес-ключа. Обратите внимание, что я уже прочитал документацию Hibernate по этой теме и знаю, что должен / не должен использовать идентификатор объекта.
Чтобы уточнить, вот пример:
public class BusinessEntity implements Serializable
{
//for simplicity, here just the important part
private String s;
@ManyToOne(fetch= FetchType.LAZY )
private ImportantEntity anotherEntity;
@Override
public boolean equals( Object obj )
{
//Here I would like to call something like
// (obj.getAnotherEntity.getName.equals(getAnotherEntity.getName) && obj.getS().equals(getS());
return true;
}
}
Конечно, это просто упрощенный пример. Но я надеюсь, что смогу объяснить свой сценарий. Кто-то пробовал что-то подобное раньше? Я не нашел ничего относительно этой темы.