So entfernen Sie die Eigenschaft der Mapping -Ressourcen von Hibernate.cfg -Datei
-
24-10-2019 - |
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
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 abgebildetfoo/bar/Foo.hbm.xml
Dies 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