Ist es die Mühe wert, von einer handgearbeiteten Hibernate Mapping-Datei zu Annotations bewegen?

StackOverflow https://stackoverflow.com/questions/82223

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe ein Webapp bekommt, deren Basis Original-Code wurde mit einer handgearbeiteten Hibernate Mapping-Datei entwickelt. Seitdem habe ich ziemlich beherrschen bei ‚Codierung‘ meine hbm.xml Datei. Aber alle coolen Kinder Annotationen in diesen Tagen verwenden.

Also, die Frage ist: Ist es die Mühe wert meinen Code Refactoring Hibernate Annotations zu benutzen? Werde ich alles andere als hip und modern gewinnen zu sein? Werde ich einen der Kontrolle verliere ich in meiner vorhandenen Hand codierte Mapping-Datei habe?

Eine Unterfrage ist, , wie viel Aufwand wird es sein? Ich mag meine Datenbanken lean and mean. Die Abbildung bezieht sich nur auf ein Dutzend Domain-Objekte, darunter zwei Sätze, einige Unterklassen, und etwa 8 Tabellen.

Danke, lieber SOpedians, im Voraus für Ihre informierten Meinungen.

War es hilfreich?

Lösung

„Wenn es nicht kaputt ist - repariere es nicht“

Ich bin ein altmodisches POJO / POCO Art von Kerl sowieso, aber warum Anmerkungen Änderung nur cool zu sein? Um das Beste aus meinem Wissen kann man die meisten Sachen, wie Anmerkungen, aber die komplexeren Zuordnungen werden ausgedrückt manchmal deutlicher als XML.

Andere Tipps

Eine Sache, die Sie verwenden, Anmerkungen anstelle einer externen Mapping-Datei zu gewinnen, ist, dass Ihre Mapping-Informationen über Klassen und Felder werden die Wartbarkeit verbessert. Sie fügen ein Feld, Sie sofort die Anmerkung hinzuzufügen. Sie entfernen ein, können Sie auch die Anmerkung entfernen. Sie benennen eine Klasse oder ein Feld, die Anmerkung genau dort ist, und Sie können die Tabelle oder Spalte als auch umbenennen. Sie Änderungen in Klassenvererbung, berücksichtigt wird. Sie müssen nicht später eine externe Datei einige Zeit gehen und zu bearbeiten. das macht das Ganze effizienter und weniger fehleranfällig.

Auf der anderen Seite, werden Sie die globale Sicht Ihre Mapping-Datei verlieren verwendet, um Sie zu geben.

Ich habe vor kurzem sowohl in einem Projekt durchgeführt und gefunden:

  1. Ich ziehe Anmerkungen zu XML zu schreiben (Spielen gut mit statischer Typisierung von Java, die automatischen Vervollständigung in IDE, Refactoring, etc). Ich mag zu sehen, das Zeug all eher miteinander verwoben als hin und her zwischen Code und XML geht.
  2. Codiert db Informationen in Ihren Klassen. Einige Leute finden, dass die Brutto- und nicht akzeptabel. Ich kann nicht sagen, es hat mich gestört. Es muss irgendwo gehen und wir werden unabhängig von der IST für eine Änderung neu zu erstellen.
  3. Wir gingen eigentlich den ganzen Weg nach JPA Annotationen aber es gibt definitiv Fälle, in denen die JPA Annotationen nicht ausreichen, so musste dann entweder Hibernate Annotations oder Config zwicken.
  4. Beachten Sie, dass Sie tatsächlich beide Annotationen und hbm Dateien verwenden können. Könnte ein schönes Hybrid sein, der den O Teil in Anmerkungen und R Teil in hbm Dateien aber klingt wie mehr Mühe gibt, als es wert ist.

So viel wie ich, um neue und potenziell bessere Dinge zu bewegen wie ich brauche, um nicht mit Zohan an Dinge zu erinnern, die nicht gebrochen werden. Also, wenn die Hibernate-Mappings in einer separaten Datei mit für Sie arbeiten jetzt würde ich es nicht ändern.

ich auf jeden Fall Anmerkungen bevorzugen, genutzt haben sie beide. Sie sind viel besser verwaltbar und da Sie nicht mit, dass viele Klassen zu tun neu Karte, ich würde sagen, es lohnt sich. Die Anmerkungen machen Refactoring viel einfacher.

Alle Funktionen werden unterstützt sowohl im XML und in Anmerkungen. Sie werden noch in der Lage sein, Ihre Anmerkungen mit XML-Deklaration außer Kraft zu setzen.

Wie für die Mühe, ich denke, es lohnt sich ist, wie Sie in der Lage sein wird, alles an einem Ort zu sehen und nicht wechseln zwischen Ihrem Code und der XML-Datei (es sei denn, der Gang Sie zwei Monitore verwenden;))

  

Das einzige, was Sie von der Verwendung gewinnen werden   Anmerkungen

Ich würde wahrscheinlich argumentieren, dass dies die , was Sie verwenden, Anmerkungen gewinnen möchten. Da bekommt man nicht Zeit Sicherheit mit NHibernate kompiliert dies ist die nächste beste Sache.

  

„Wenn es nicht kaputt ist - repariere es nicht“

@Macka - Danke, ich brauchte das zu hören. Und vielen Dank an alle für Ihre Antworten.

Während ich bin in der sehr glücklichen Lage, mit einer verrückt Menge an professioneller und kreativen Kontrolle über meine Arbeit, und kann fast jede Technologie, die Bibliothek bringen, oder Werkzeug für fast jede Vernunft (teure Sachen entblößt) einschließlich „weil alle coolen Kinder es verwenden“ ... es ist nicht wirklich Sinn zu portieren machen, was zu einem erheblichen Teil des Kerns beträgt ein bestehendes Projekt.

Ich werde versuchen, Hibernate oder JPA-Annotationen mit einem grünen Feld Projekt einige Zeit. Leider bekomme ich selten neue völlig unabhängige Projekte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top