Bean Vergleich.gibts da schon was Feines?

Status
Nicht offen für weitere Antworten.

happy_robot

Bekanntes Mitglied
Hallo,

ich suche gerade verzweifelt nach einer Klasse oder Methode um Beans elegant und ohne viel Aufwand vergleichen zu können.
Gibts da nicht vielleicht schon was? Habe gesucht, aber noch nichts gefunden.

Grüße
 

happy_robot

Bekanntes Mitglied
ich meine beans gemäß der spezifikation (getXxxxx, setXxxxxx).
is also egal in welchem umfeld. einfach der vergleich zweier beans (Jede Art von Beans unterstütz ja diese Spec)

comparable is auch klar.....da die spezifikation aber gleich auch die wertemenge aller eigenschaften wiedergibt sollte ein comparator überflüssig sein.


gruß
 

happy_robot

Bekanntes Mitglied
SlaterB hat gesagt.:
http://commons.apache.org/beanutils/

joo...die hab ich auch gefunden. hilft aber nicht weiter.
der BeanComparator verlangt auch einen Comparator. hilft also nicht.

ich suche eine klasse die folgendes macht:

- übergabe bean A und Bean B (gleicher Typ)
- getter von A ermitteln
- für alle getter werte von A nehmen und mit werten von B vergleichen

selber schreiben is kein thema, aber kann doch nicht sein daß es sowas noch nicht gibt.


gruß
 

happy_robot

Bekanntes Mitglied
*verzweifel* :)

ich will bei den beans nix implementieren, und die equals der standard-datentypen nutzen.
anhand der spezifikation ist klar daß die eigenschaften die es zu vergleichen gilt durch die methoden repräsentiert werden die mit "get..." beginnen.
typgleichheit sollte durch typgleichheit der beans gewährleistet sein.
 

BjörnBu

Aktives Mitglied
Wenn ich mich recht erinnere gibt's da die Introspection API. Ist ähnlich wie reflection aber auf beans beschränkt und nicht ganz so unschön, weil eben grade nur von attributen, gettern und settern ausgegangen wird. Ob da ein Vergleich fertig implementiert ist, weiß ich nicht. Wenn nicht, sollte es aber in einer Hand voll Zeilen selbst implementierbar sein.
 
S

SlaterB

Gast
http://commons.apache.org/lang/api/org/apache/commons/lang/builder/EqualsBuilder.html#reflectionEquals(java.lang.Object,%20java.lang.Object,%20boolean,%20java.lang.Class,%20java.lang.String[])
 

byte

Top Contributor
Coole Sache dat! EqualsBuilder, HashCodeBuiler, CompareToBuilder... damit kann man die drei Methoden endlich mal auf einfache Weise konsistent halten. :toll:
 

FArt

Top Contributor
Ich verstehe den Hintergrund nicht ...

Warum will ich wissen, ob zwei Beans die gleichen öffentlichen Attribute besitzen? Von Gleichheit kann man ja da auf keinen Fall sprechen.
Der Vorschlag von SlaterB ist dann wenigstens Konsistent. Hier wird das ganze über die equals()-Methode allgemein gelöst. Über Performance sollte man sich aber auch Gedanken machen. Das reicht aber bei einem konkreten Verdachtsmoment.
Warum wird das im EE Form diskutiert?
 

happy_robot

Bekanntes Mitglied
FArt hat gesagt.:
Ich verstehe den Hintergrund nicht ...

Warum will ich wissen, ob zwei Beans die gleichen öffentlichen Attribute besitzen? Von Gleichheit kann man ja da auf keinen Fall sprechen.
Der Vorschlag von SlaterB ist dann wenigstens Konsistent. Hier wird das ganze über die equals()-Methode allgemein gelöst. Über Performance sollte man sich aber auch Gedanken machen. Das reicht aber bei einem konkreten Verdachtsmoment.
Ich arbeite mit den EJB 3 und JPA. Es gibt keine elegante und effiziente Art herauszufinden ob sich eine gelesene Entität gegenüber der Persistenzschicht geändert hat. Daher packe ich die Entity-Bean in einen Wrapper und lege sofort einen Clone davon an. Später kann ich dann durch simplen Werte-Vergleich herausfinden ob sie sich geändert hat.

FArt hat gesagt.:
Warum wird das im EE Form diskutiert?
Weil ich mir hier die meiste Erfahrung im Umgang mit Beans erhoffe.... :D
 

happy_robot

Bekanntes Mitglied
SlaterB hat gesagt.:
http://commons.apache.org/lang/api/org/apache/commons/lang/builder/EqualsBuilder.html#reflectionEquals(java.lang.Object,%20java.lang.Object,%20boolean,%20java.lang.Class,%20java.lang.String[])
Exakt das ist das was ich suche! Das haben die Apachen ja mal wieder fein versteckt :)
Danke!

Ich habe es aber mittlerweile mit Annotationen gelöst.
 

byte

Top Contributor
happy_robot hat gesagt.:
Es gibt keine elegante und effiziente Art herauszufinden ob sich eine gelesene Entität gegenüber der Persistenzschicht geändert hat.
Na klar gibts da Möglichkeiten! Guck Dir z.B. mal @Version an...

Daher packe ich die Entity-Bean in einen Wrapper und lege sofort einen Clone davon an. Später kann ich dann durch simplen Werte-Vergleich herausfinden ob sie sich geändert hat.
Bei einer großen Menge von Datensätzen und/oder vielen Clients erzeugst Du damit aber einen extremen Memory-Overhead. Es gibt wie gesagt deutlich effizientere Lösungen für das Problem.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R JSF Entitybean direkt in Sessionscoped Bean referenzieren Allgemeines EE 2
I Session löschen in Bean (Session Beans) Allgemeines EE 1
J Hello World mit Stateless Session Bean - Was mache ich falsch? Allgemeines EE 2
J Unterschied zwischen HttpSession und Stateful Session Bean Allgemeines EE 3
R Wie eine stateful session bean erneut "aufgreifen" Allgemeines EE 22
B [EJB] javax.inject.DefinitionException: bean not a Java type Allgemeines EE 5
T Einstieg in J2EE: Remote auf Bean zugreifen Allgemeines EE 11
H Bean läuft unter GlassFish, aber JBoss nicht Allgemeines EE 5
P Unterschied Session Scope / Stateful Session Bean Allgemeines EE 6
A Im PhaseListener auf Stateful Session Bean zugreifen Allgemeines EE 6
J geschützter Bean zugriff mit einem Rich-Client Allgemeines EE 2
2 JSTL Tags für eine Bean? Allgemeines EE 4
M Spring: Bean als Webservice freigeben Allgemeines EE 9
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
V JSP BEAN Speichern von einer Zahl nach eingabe Allgemeines EE 2
B unterschied servlet und bean Allgemeines EE 2
F response.sendError() von Bean aus Allgemeines EE 6
A Session Bean mit Local-Interface nutzen Allgemeines EE 3
J prozesse aus der application-bean threadfähig? Allgemeines EE 4
G JSF dynamsiche style zuweisung aus Backing Bean Allgemeines EE 3
G Objekt von jsp an set Methode von Bean übergeben! Allgemeines EE 2
N Lokation von Bean Klassen? Allgemeines EE 5
M JSF Bean-Property mit Parameter aufrufen Allgemeines EE 12
M JSF & EJB "Bean not bound" Problem Allgemeines EE 4
R Zugriff auf Managed Bean aus einem Filter Allgemeines EE 2
boxi JSF von einem Bean auf ein anderes Bean zugreifen Allgemeines EE 3
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
Y JSF - einzelne Bean zerstören/ungültig machen Allgemeines EE 2
S In einer Bean-Methode an ndere Beans kommen Allgemeines EE 7
ichbindiegute Performance von Entity Bean create vs. JDBC insert Allgemeines EE 11
RaoulDuke EJB 3.0 - Exceptions aus Methoden einer Session Bean Allgemeines EE 2
A Selbstreferenzierter Entity-Bean Allgemeines EE 3
V Bean-Daten in JSF-JSP finden Allgemeines EE 3
G Entity Bean ignoriert Datenbank Allgemeines EE 16
J In einem Bean zugriff auf ein SessionBean? Allgemeines EE 2
F Session Bean -> Daten aus dem Servlet holen Allgemeines EE 11
F Package beim Cookie-setzten über BEAN nicht gefunden Allgemeines EE 4
M STRUTS/Cannot retrieve definition for form bean null on acti Allgemeines EE 4
E Methoden einer Bean aufrufen? Allgemeines EE 4
P jsf SelectOneMenu: Bean als SelectItem Value Allgemeines EE 5
P Struts Form Bean vs. Session Variable Allgemeines EE 6
G Exception creating bean of class . (Struts) Allgemeines EE 8
T statische Methoden versus Application-Bean Allgemeines EE 2
N Duplicate Bean Name (Tomcate 5.X, JDK 1.5) Allgemeines EE 2
M Unterschied zwischen Servlet und Bean/EJB Allgemeines EE 2
flashfactor Logging in einem Session-Bean Allgemeines EE 2
N Einbindung einer Bean in eine JSP (Tomcat-Server 5.5.x) Allgemeines EE 2
H Sichtbarkeit von Bean-Modifikationen? Allgemeines EE 2
H JSP, Session und Java-Bean Allgemeines EE 4
R html-form mit bean:write Allgemeines EE 10
R Use bean in scriptlet in struts Allgemeines EE 4
N Deployen einer EJB3.0 Bean Allgemeines EE 4
M Session Bean vers. Entity Bean Allgemeines EE 3
U Enterprise Bean mit dynamischer Datenbankauswahl? Allgemeines EE 3
T Filesystemzugriff von einer Bean? Allgemeines EE 6
C Mail von einer Session Bean aus senden Allgemeines EE 2
C Message Driven Bean soll keine Nachrichten empfangen Allgemeines EE 4
A Begriffe MBean JMX-Bean? Allgemeines EE 2
K JAVA BEAN DB Connection Prob Allgemeines EE 5
B Kein definiertes Bean? --- JDeveloper Allgemeines EE 5
C JSP mit java Bean Allgemeines EE 22
T Bean übertragen von Servlet zu Servlet Allgemeines EE 9
T Variablen von Bean über Servlet setzen Allgemeines EE 5
S XML parsen in Bean Allgemeines EE 2
G Instanzvariablen mit Strings in Bean vergleichen... Allgemeines EE 3
S Struts: Problem mit <bean:message> - Tag Allgemeines EE 1
A Kommunikation zwischen Java Servlet und Bean Allgemeines EE 1
G Vergleich zwischen Java Spirng und Ruby on Rails Allgemeines EE 9
B Expressionlanguage String Vergleich Allgemeines EE 7
S gibts ne spezielle möglichkeit applets mit servlets auszugeb Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben