| 

.NET C# Java Javascript Exception

PersistentSet.contains()

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


PersistentSet.contains()

MKay - 02.11.2009 22:25
Hi,

ich bin es schon wieder :-)

Ich habe eine User-Domain-Class. Nun habe ich in einer anderen Domain-Klasse ein Feld members1 und members2 (PersistentSet) und ich möchte prüfen, ob sich dieser User in dieser members-Liste befindet.

Dazu dachte ich mir, dass ich ein (members1 + members2).contains(user) mache und dabei der User-Klasse noch folgendes hinzufüge:
Language: Groovy
boolean equals(obj) { return obj.id == this.id }

Leider scheint das die contains-Methode komplett zu ignorieren. Auf jeden Fall funktioniert das auf diese Weise nicht, da immer false zurückgegeben wird.
Wenn ich manuell durchlaufe, funktioniert es:
Language: Groovy
for (u in users) { if (u == user) { retVal = true break } }

Mache ich irgendetwas falsch oder ist das ein Bug?

Gruss,
MKay


Re: PersistentSet.contains()

tmaus - 27.11.2009 18:52
Interessant wäre ja wieso es so ist.

Ist es generell so, dass die Hibernate PersistentList.contains Methode nicht gegen ein anderes Hibernate-Objekt verglichen werden kann.
Diesen Fall benutzt man häufig und es stört, dass man bis auf die atomare Ebene, also auf die ID herunterkommen muß.


Re: PersistentSet.contains()

milkyman - 30.11.2009 10:04
Der contains scheint ja equals zu verwenden, wenn MKay das angepasst hat. Und im equals wird man nun irgendwie angeben müssen, wann Objekte gleich sind und da ist die ID in den meisten Fällen (aber nicht immer) passend. Was würdest du anders machen wollen?

PS: Wieso MKays Ansatz nicht funktioniert hat, habe ich nicht getestet, sieht eigentlich nicht so schlecht aus.

Bye,
Horst


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "PersistentSet.contains()" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.