Re: [ORM] JPA weniger leistungsfähig als Hibernate?
Von: Steffen Ramlow (s.ramlow@gmx.net) [Profil]
Datum: 18.10.2007 13:15
Message-ID: <5notimFjft0hU1@mid.individual.net>
Newsgroup: de.comp.lang.java
Datum: 18.10.2007 13:15
Message-ID: <5notimFjft0hU1@mid.individual.net>
Newsgroup: de.comp.lang.java
Danny Gerst wrote: > Ich glaube so langsam verstehe ich den Sinn der Schichtenobjekte. :) > Dies brau allerdings auch nur dann passieren, wenn das Domainmodell > Änderungen beinhaltet, die auch für die GUI interessant sind. Das ist bei deinem Design eigentlich immer so, weil du in der GUI ja direkt mit Domain-Objekten arbeitest. Es sei denn, du baust immer rückwärtskompatibel um, was ggf. zu doppeltem Code, Unleserlichkeit und haufenweise @deprecated Tags führt. > Damit machen mehrere DAO Sinn. Bislang habe ich eine Serviceschicht > dazwischen geschoben, die genau diese Funktion kapselt. Die > Serviceschicht bot eine Methode getOpenOrders an, nutze dann denn von > mir vorgestellten Mechanismus. Ob es nun ein Statusflag ist oder eine > komplizierte Query war dem servicenutzenden Objekt reichlich egal. Kann man so machen, weicht aber die Schichtentrennung auf. Deinen Service sollte null interessieren, was das DAO macht, um die Objekte zu finden oder zu speichern. > Ich dachte du meinstes, warum ich überhaupt das *Template von Spring > benutze. Das HibernateTemplate selbst nutze ich, um die mächtigere API > von Hibernate nutzen zu können. Vor allem kann ich damit die Criteria > API nutzen. Ich mag keine irgendwie gearteten Queries schreiben, wenn > es nicht unbedingt notwendig ist. Hm, du kannst sicher die Finder mit Hibernate direkt machen. Dafür brauchst du nicht mal die HibernateTemplates von Spring. Hol dir im Finder einfach die Session und setze das FindByExample ab und hoffe darauf, das das Teil auch JPA-Annotation versteht und in Zukunft verstehen wird. Mach den 0815-Rest mit dem JPA-API. Ich persönlich würde das nicht tun, sondern 100 % bei JPA bleiben oder 100 % bei Hibernate. Bei JPA hast du derzeit und wahrscheinlich auch künftig immer Dinge, die dir fehlen werden - verglichen mit einem ORM, der ja extra proprietäre Leckerlis anbietet, um ein z.B. Vendor-Lock-in zu erreichen. Ein FindbyExample hast du mit ein bisschen Reflection schnell auf JPA-QL abgebildet. > Jup, habe ich schon rausgefunden. Nur das unter > http://forum.springframework.org/showthread.php?tD911 beschriebene > Problem besteht noch. Muss mal sehen, wie ich das lösen kann. Da wirst du wahrscheinlich keine Antwort bekommen, weil du da zwei Dinge vermischen willst, die so keiner bisher vermischt hat und sicher auch nicht vermischen will. Der Hinweis von dem "Senior Member" sagt das ja schon. Grundsätzlich zum Thema Schichten. Wenn du eine Anwendung hast, die du allein voll kontrollierst, dann kannst du dir Schichten sparen. Im Extremfall reichen deine Domain-Klassen und eine Service-Schicht, um dein GUI zu bedienen. Kommt immer drauf an, für welchen Zweck du das baust und wer noch so daran beteiligt ist. -- Alle gegen Alle http://www.fightclub-berlin.de[ Auf dieses Posting antworten ]
Antworten
- CIS (18.10.2007 14:48)
