Comme dit Jean-Claude Van Damme, 1+1=11 et là c'est beau.
Quand tu travailles avec des références d'objets et non des valeurs, l'opérateur == signifie "est la même instance que". Donc si c'est l'équivalence que tu veux tester, tu devrais plutôt écrire quelque chose comme:
(obj1.getId() != null) && obj1.getId().equals(obj2.getId())