Hallo King,
ich merke, wir werden morgen frueh noch diskutieren ;)
Die Bindung zwischen dem Objekt "Auto" in der Geschäftslogikschicht und dem Objekt "Auto"
in der Datenzugriffsschicht war gemeint. Also, wenn ich bspw. die Einstellung "Auto kann
auch 3 Räder haben" dem Geschäftslogikobjekt beifüge, wird dann in der Datenschicht ein
entsprechender CONSTRAINT eingestellt?
Fuer die Aenderunge "3 auf 4 Raeder" bedarf es sicherlich keiner Constraints.
Vielleicht hast du nicht gerade ein gutes Beispiel gewaehlt, jedoch lese ich zwischen den
Zeilen wieder eine Vermischung der Persistenzschicht und der Businessschicht.
Wie gut klappt das? Bestimmte Datenänderungen erfordern bspw. UPDATEs in drei veschiedenen
Tabellen und mehrere vorhergehende SQL-Abfragen, die bspw. einen komplexen fünffach JOIN
beinhalten.
Das klappt eigentlich ziemlich gut. Und JOINs sind ja jetzt auch nicht so Komplex, dass man
sie nicht wohl definieren und damit auch konfigurieren kann.
Ich meinte den SQL-Code, der vom framework erstellt wird. Da kann mir keiner erzählen,
dass der so gut ist wie bspw.der Lully-gemachte.
Ich kenne deine Kenntnisse jetzt natuerlich nicht und will dir deine Faehigkeiten auch nicht
abstreiten, aber der Code ist schon ziemlich sauber und optimiert.
Ich meine, Wir reden hier von einem in der Geschaeftswelt eigentlich als Standard etablierten
Persistenz-Framework. Der manuelle Weg ist eindeutig fehleranfaelliger.
Nun, die Frage war, ob in der Praxis immer wieder direkt SQL-Code abgeschickt werden muss,
der eigentlich nicht ins OOP-Konzept passt. Weil es nicht anders geht, aber benötigt wird,
brauchst Du Beispiele?
Ja, zeige mir bitte ein SQL-Code, der "nicht ins OOP-Konzept passt". Ich wuerde gerne
mal verstehen worin du Probleme siehst, die Millionen Entwickler nicht sehen ;-)
Ich glaube nicht, dass qualitativ guter SQL-Code am Ende dabei herauskommt.
Wie bereits oben erwaehnt, Hibernate ist DAS Persistenzframework schlechthin, was bereits seit
ein paar Jahren den Ruf "professionell" fuer sich beansprucht und eben auch in solch
einem Umfeld Verwendung findet.
Ich glaube, dass es viele Limitierungen gibt.
Was meinst Du mit Limitierungen? Selbst Sachen, die auf Code-Ebene geschehen, wie zB Late-Bidings,
lassen sich munter konfigurieren.
Darum wäre ein Beispielprojekt incl. Code nicht schlecht, das ich mir mal anschauen werde.
Vermutlich kann ich dann auch die Kritik detailliert festmachen.
Suche einfach mal bei Google, dort wird man fuendig.
Wir bei uns in der Firma (wir implementieren die Client und Server-Software und -Architektur fuer
den Fuhrparkservice der Deutschen Bahn) nutzen ausschließlich Hibernate (Java) fuer die Persistenzschicht.
Fuerwahr ist Hibernate nur ein Baustein des gesammeten Frameworks, jedoch wird keine einzige Zeile
SQL per Hand implementiert (OK, zu 95% ;) - und das bei Datenbanken >500 Tabellen und unzaehligen
Abhaengigkeiten und Constraints. Vielleicht liegt es genau daran, dass ich deine Einstellung nicht teilen kann.
Bitte nichts fuer ungut, aber ich verstehe ehrlich gesagt nicht,
warum wir jetzt tatsaechlich ueber die Sinnhaftigkeit eines
Persistenzfraemworkes debatieren, wobei die Verwendung eines Solchen
in der Informatik Gang und Gebe, so wie ein sehr verbreitetes und
genutztes Konzept ist.