Как программно добавить XML-файл отображения Hibernate (hbm.xml)
XML-файл отображения Hibernate содержит отношение отображения между классом Java и таблицей базы данных. Это всегда называется «xx.hbm.xml» и объявляется в файле конфигурации Hibernate «hibernate.cfg.xml».
Например, файл сопоставления (hbm.xml) объявлен в теге «mapping».
false com.mysql.jdbc.Driver password jdbc:mysql://localhost:3306/example root org.hibernate.dialect.MySQLDialect true
Добавить файл сопоставления Hibernate (hbm.xml) программно
По каким-либо причинам вы не хотите включать файл сопоставления вhibernate.cfg.xml. Hibernate предоставляет метод для разработчика, чтобы добавить файл сопоставления программно.
Просто измените класс HibernateSessionFactory по умолчанию, передав путь к файлу «hbm.xml» в качестве аргумента в методaddResource():
SessionFactory sessionFactory = new Configuration()
.addResource("com/example/common/Stock.hbm.xml")
.buildSessionFactory();
HibernateUtil.java
Полный примерHibernateUtil.java, загрузить файл отображения XML Hibernate «xx.hbm.xml» программно.
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
SessionFactory sessionFactory = new Configuration()
.configure("/com/example/persistence/hibernate.cfg.xml")
.addResource("com/example/common/Stock.hbm.xml")
.buildSessionFactory();
return sessionFactory;
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
Готово.