Как программно добавить 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(); } }
Готово.