Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Frage zu equals() & hashcode()
PostPosted: Thu Jul 07, 2011 5:29 am 
Newbie

Joined: Thu Jul 07, 2011 5:18 am
Posts: 10
Hi, ich habe schon einiges über die Implementierung von hashcode und equals gelesen und verstehe das Problem immer noch nicht ganz. Folgendes :

In meinem aktuellen Projekt ( das erste Mal mit Java ) bin ich dabei eine Website mit Java,Spring,Hibernate,JPA zu schreiben. Ich habe zu beginn des Projektes die Problematik mit equals() & hashcode() eher vernachlässigt, habe halt meine Junittests gemacht und sonst hat eigentlich alles wunderbar funktioniert ( Programm hat gewünschtes Verhalten ). Es ist allerdings so, das ich weder equals() noch hashcode() implementiert habe. Nun meine Frage :

MUSS ich equals() & hashcode() implementieren, auch wenn ich kein Fehlverhalten ( weder bei tests noch bei produktivem Einsatz ) feststellen kann ?


Top
 Profile  
 
 Post subject: Re: Frage zu equals() & hashcode()
PostPosted: Tue Jul 26, 2011 11:56 am 
Newbie

Joined: Mon Jan 31, 2011 3:23 pm
Posts: 5
Bei Klassen mit value-Semantik (also Klassen, die Daten speichern) sollten equals() und hashCode immer implementiert sein. Erstens ist das für Java wichtig bspw. wenn man mal Sets nutzen möchte oder in der Applikation feststellen, ob zwei Entitäten gleich sind. Ohne die Hibernate Interna zu kennen glaube ich, dass es auch für Hibernate wichtig ist. Auch wenn alles fehlerfrei funktioniert, kann es unter der Haube chaotisch sein. Ich könnte mir zum Beispiel vorstellen, dass Instanzen in irgendwelchen Caches oder sogar in der Session gespeichert werden und hier dann möglicherweise doppelt, weil Hibernate nicht erkennen kann, dass zwei Instanzen eigentlich gleich sind.

Nachdem bei Dir ja alles fehlerfrei funktioniert, kannst du das Problem ja mal in einer ruhigen Minute angehen.

_________________
http://www.winfonet.eu


Top
 Profile  
 
 Post subject: Re: Frage zu equals() & hashcode()
PostPosted: Tue Jul 26, 2011 12:51 pm 
Newbie

Joined: Thu Jul 07, 2011 5:18 am
Posts: 10
hey danke für die Informationen. Mittlerweile habe ich bereits in fast alle Klassen equals und hashcodes implementiert, da ich an manchen Stellen tatsächlich feststellen wollte ob Objekte gleich sind, und eben das ging nicht ohne e&h.
Aber was mache ich, wenn ich Klassen habe mit einer auto generierten ID und nur einem property. Die ID darf ich ja nicht hernehmen (da die ID erst beim speichern feststeht), das andere property ist nicht unique. Wie löst man so ein Problem ?


Top
 Profile  
 
 Post subject: Re: Frage zu equals() & hashcode()
PostPosted: Thu Sep 22, 2011 3:01 am 
Beginner
Beginner

Joined: Sat Oct 18, 2008 10:25 am
Posts: 30
Möglicherweise musst du dann noch ein weiteres Attribut einbauen, das du als eindeutiges Merkmal verwenden kannst. z.B. Ein Feld, dessen Wert du in deinem Programm hochzählst. Das ist die beste Möglichkeit, die mir jetzt einfällt.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.