Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Configuração programática do Hibernate

Boa noite! Existe uma forma de configurar o Hibernate programaticamente sem ser com o spring? e se existe poderia me dar um exemplo? eu estou precisando disso para um projeto.

grato.

3 respostas

O hibernate não precisa ser usado só com o spring, você pode configurar com o spring e usar normalmente com outros framework tipo jsf spring... Mais a configuração dele é mais ou menos assim.

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="nomeDoSeuProjeto" transaction-type="RESOURCE_LOCAL">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>



        <properties>

            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/bercalini" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="admin" />

            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        </properties>
    </persistence-unit>
</persistence>
solução!

Boa tarde Allison,

Minha dúvida é como fazer essa configuração em tempo de execução, você me entende?

quando eu vou deplora minha app eu preciso que isso seja executado e configurado.

de qualquer forma eu já consegui fazer aqui, achei uns exemplos no stack overflow e deu certo.

public class HibernateUtil {
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
    private static SessionFactory sessionFactory = null;

    public static Session openSession(String host, int port, String base, String login, String senha) {
        Configuration config = new Configuration().configure(new HibernateUtil().getPath());
        config.setProperty("hibernate.connection.url", "jdbc:postgresql://" + host + ":" + port + base);
        config.setProperty("hibernate.connection.username", login);
        config.setProperty("hibernate.connection.password", senha);
        sessionFactory = config.buildSessionFactory();
        threadLocal.set(sessionFactory.openSession());
        return threadLocal.get();
    }

    public String getPath() {
        return getClass().getProtectionDomain().getCodeSource().getLocation().getPath() + "/hibernate.cfg.xml";

    }
}