Comment ajouter un fichier de mappage XML Hibernate (hbm.xml) par programme

Comment ajouter un fichier de mappage XML Hibernate (hbm.xml) par programme

Le fichier de mappage XML Hibernate contient la relation de mappage entre la classe Java et la table de base de données. Celui-ci est toujours nommé «xx.hbm.xml» et déclaré dans le fichier de configuration Hibernate «hibernate.cfg.xml».

Par exemple, le fichier de mappage (hbm.xml) est déclaré dans la balise «mapping»





  false
  com.mysql.jdbc.Driver
  password
  jdbc:mysql://localhost:3306/example
  root
  org.hibernate.dialect.MySQLDialect
  true
  

Ajouter le fichier de mappage d'Hibernate (hbm.xml) par programme

Pour une raison quelconque, vous ne souhaitez pas inclure le fichier de mappage danshibernate.cfg.xml. Hibernate fournit une méthode permettant au développeur d'ajouter un fichier de mappage par programme.

Modifiez simplement la classe par défaut HibernateSessionFactory en passant votre chemin de fichier «hbm.xml» comme argument dans la méthodeaddResource():

SessionFactory sessionFactory = new Configuration()
   .addResource("com/example/common/Stock.hbm.xml")
   .buildSessionFactory();

HibernateUtil.java

Exemple complet deHibernateUtil.java, chargez le fichier de mappage XML Hibernate «xx.hbm.xml» par programmation.

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();
    }

}

Terminé.