2011-01-07 6 views
0

Ich bin auf eine Situation gestoßen, wo ich ein Entity-Objekt in JPA behalte und anschließend sehen muss, ob ein anderes Objekt .equals() es.Sollte ich verwaltetes Objekt auf JPA zurückgeben erstellen/bearbeiten

Der Test schlägt jedoch fehl, weil das erste Objekt nur ein POJO ist, während das zweite Objekt das verwaltete Äquivalent ist.

Ist es bewährte Methode, das neu verwaltete Entitätsobjekt als Ergebnis einer JPA-Erstellungs- oder Bearbeitungsoperation zurückzugeben?

Grüße, Laurence

Antwort

1

Sie können die Methoden hashCode() und equals(..) mit den Feldern überschreiben, die den Geschäftsschlüssel des Objekts bilden. See this article

+0

Dieser Artikel war sehr hilfreich. Unglücklicherweise hatte ich ein Problem, weil ich einen Baum von selbstverweisenden Objekten hatte, der nur ein Namensfeld hatte, das nicht eindeutig war. In dieser Situation musste ich die ID der Elternobjekte zusammen mit dem Objektnamen zur eindeutigen Identifizierung verwenden. Ich konnte keinen besseren Weg finden, es zu tun. – retrodev

+0

gut, das klingt fair. Wenn ein Objekt eindeutig durch seinen Elternteil und Namen identifiziert wird - so sei es. – Bozho

0

Sie haben zwei Arten erhalten? Ein POJO, effektiv ein DTO und ein kommentierter POJO, der verwaltet wird? Kannst du entweder eine equals-Methode codieren oder eine Vergleichsmethode erstellen, die nicht überraschendes Verhalten vermittelt?

Dies führt zu vielen interessanten Fragen darüber, was "Gleichheit" bedeutet. Meine Absicht hier ist, eine hasTheSameValueAs() Methode zur Verfügung zu stellen.

Um Ihre Frage direkt zu beantworten, scheint es manchmal sehr bequem zu sein, das verwaltete Objekt zurückzugeben.

Verwandte Themen