Frage

Ich arbeite derzeit an einem Projekt. In meinem Projekt gibt es viele Entitäts-/Pojo -Dateien. Derzeit verwende ich einfache hibernate.cfg.xml, um alle Zuordnungsdateien zur Konfiguration hinzuzufügen wie:-

<mapping resource="xml/ClassRoom.hbm.xml"/>
<mapping resource="xml/Teacher.hbm.xml"/>
<mapping resource="xml/Student.hbm.xml"/>

Ich habe eine große Anzahl von Zuordnungsdateien, wodurch meine Datei hibernate.cfg ein bisschen chaotisch aussieht. Es gibt also eine Möglichkeit, dass ich die oben genannte in der Hibernate.cfg -Datei nicht hinzufügen muss. Vielmehr kann es eine andere Möglichkeit geben, dasselbe zu erreichen. Bitte helfen Sie

War es hilfreich?

Lösung

Sie könnten a erstellen Configuration programmatisch und verwenden Configuration#addClass(Class) Um die zugeordnete Klasse anzugeben (und Hibernate lädt die Zuordnungsdatei für Sie). Aus dem Javadoc:

Lesen Sie eine Zuordnung als Anwendungsressource mit der Konvention, die eine Klasse genannt wird foo.bar.Foo wird von einer Datei abgebildet foo/bar/Foo.hbm.xmlDies kann als Klassenbodenressource gelöst werden.

Sie könnten also so etwas tun:

Configuration cfg = new Configuration()
    .addClass(org.hibernate.auction.Item.class)
    .addClass(org.hibernate.auction.Bid.class)
    ...
    .configure();
SessionFactory factory = cfg.buildSessionFactory();

Siehe auch

Andere Tipps

Die Hibernate -Konfigurationsklasse selbst bietet keine magische Methode für Addhallentities. Aber Sie können verwenden AnnotationsionSessionFactoryBean setpackagestoscan Methode. Denken Sie daran, dass es einfach funktioniert, wenn Sie eine kommentierte Entitätsklasse verwenden, und es handelt sich um eine federabhängige Klasse

AnnotationSessionFactoryBean sessionFactory = new AnnotationSessionFactoryBean();

sessionFactory.setDataSource(<javax.sql.DataSource> implementation goes here)
sessionFactory.setPackagesToScan(new String [] {"xml"});

Ja, Verwenden Sie Anmerkungen.

@Entity
public class Teacher {

    @Column
    private String name;

    @Column
    private String address;

    etc..
}

Hibernate erkennt automatisch Klassen, die mit Anmerkungen versehen sind @Entity.

Die Konfigurationsmethode adddirectory ()/addjar () verwendet alle .hbm.xml-Dateien, die in einem angegebenen Verzeichnis/Jar-Datei gefunden wurden. Sie müssen diesen Ort hardcodieren, aber nur diesen einen

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