Guest User

Untitled

a guest
Feb 21st, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.41 KB | None | 0 0
  1. public class HibernateUtil {
  2.  
  3.     private static SessionFactory sessionFactory;
  4.  
  5.     static {
  6.         try {
  7.             // abre o properties com as configurações do hibernate (conexão e propriedades)
  8.             //Properties propriedades = new Properties();
  9.             //propriedades.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("hibernate.properties"));
  10.            
  11.             Properties propriedades = Util.hibernateProp();
  12.             // chama o méto que cria o session factory usando o properties.
  13.             createSessionFactory(propriedades);
  14.  
  15.         } catch (Exception ex) {
  16.             // Log the exception.
  17.             System.err.println("Initial SessionFactory creation failed." + ex);
  18.             throw new ExceptionInInitializerError(ex);
  19.         }
  20.     }
  21.  
  22.     /**
  23.      * Método que (re)cria o SessionFactory a partir de um arquivo properties passado.
  24.      *
  25.      * @param propriedades
  26.      */
  27.     public static void createSessionFactory(Properties propriedades) {
  28.  
  29.         try {
  30.  
  31.             AnnotationConfiguration cfg = new AnnotationConfiguration();
  32.             // seta as configurações do properties passado no cfg do hibernate.
  33.             cfg.setProperties(propriedades);
  34.  
  35.             // define configurações adicionais do hibernate (pode ser colocado no properties tambem)
  36.             cfg.setProperty("hibernate.show_sql", "true")
  37.                     .setProperty("hibernate.format_sql", "true")
  38.                     .setProperty("hibernate.hbm2ddl.auto", "update")
  39.                     .setProperty("hibernate.transaction.factory_class", "org.hibernate.transaction.JDBCTransactionFactory")
  40.                     .setProperty("hibernate.current_session_context_class", "thread");
  41.  
  42.             // pacotes onde estao as classes que serao adicionadas como Entitys no hibernate
  43.             Set<Class> listaClasses = ClassScan.findAll().annotatedWith(Entity.class).in("valueObjects");
  44.             for (Class classe : listaClasses) {            
  45.                 cfg.addAnnotatedClass(classe);
  46.             }
  47.             // (re)constroi o SessionFactory
  48.             sessionFactory = cfg.buildSessionFactory();
  49.         } catch (Throwable ex) {
  50.             // Log the exception.
  51.             System.err.println("Initial SessionFactory creation failed." + ex);
  52.             throw new ExceptionInInitializerError(ex);
  53.         }
  54.     }
  55.  
  56.     public static Session getSession() {
  57.         return sessionFactory.openSession();
  58.     }
  59. }
Add Comment
Please, Sign In to add comment