Hibernate: Zuordnen von Dateien oder Anmerkungen?

8

Als ich vor ein paar Tagen mit Hibernate angefangen habe, habe ich mich nur gefragt: Angenommen, Sie beginnen ein Projekt von Grund auf neu. Verwenden Sie Annotations-basierte Mapping- oder Hibernate-Mapping-Dateien, um das Datenbankschema zu generieren.

Ich verstehe, dass Hibernate-Mapping-Dateien einige Funktionen bieten, die Sie mit Anmerkungen nicht finden (zumindest nicht genau). Aber ich habe immer noch das Gefühl, dass Hibernate-Projekte heutzutage eher Annotations-basierte als Hibernate-Mapping-Dateien verwenden.

Hat jemand jemals Mapping-Dateien über Annotationen ausgewählt, und wenn ja, aus welchen Gründen?

    
kyiu 17.04.2012, 12:47
quelle

2 Antworten

12

Welche Vorteile sehe ich in mit @Annotations :

  • Compiler-sicher
  • basierend auf @Entity können Sie Entity leicht von no-entity
  • unterscheiden
  • mit packagesToScan Spring's Feature-Eigenschaften sind leicht scanbar
  • das Verschieben von Zuständen von Paketen zu Paketen oder das Umbenennen von Klassen ist einfach

Welche Vorteile sehe ich in mit XML :

  • es wirft keine Java-Klassen mit unnötigen herstellerspezifischen Anmerkungen (stellen Sie sich vor, Java Model Klasse mit JPA, JAXB, SOLRJ Anmerkungen)
  • Konfiguration an einem Ort
  • einfacher zu pflegen als Ganzes

Wir verwenden Annotationen, behalten aber XML als Option.

    
JMelnik 17.04.2012, 13:09
quelle
4

Fahren Sie jeden Tag mit Anmerkungen fort. Die XML-Konfigurationen, bei denen die Metadaten in der Klasse wirklich überbenutzt und gespeichert wurden, sind eine gute praktikable Option.

Mithilfe von Anmerkungen können Sie die Beziehungen besser abbilden, und Sie richten sich nach dem JPA-Standard aus, da der Ruhezustand hauptsächlich JPA-Anmerkungen verwendet . Es gibt keine wirklichen Probleme mit Anmerkungen und es gibt auch keinen großen Kompromiss. Es bietet gegenüber den XML-basierten Konfigurationen überlegene Vorteile. Es können einige Hacks fehlen, wenn Sie Anmerkungen verwenden, aber sie kommen mit.

Es ist sogar möglich, Annotationen für neue Klassen in einem Legacy-Projekt mit XML-basierter Zuordnung zu verwenden, wie in hier angegeben.

    
ManuPK 17.04.2012 13:07
quelle

Tags und Links