Eu comecei a fazer minha aplicação 100% JDBC, mas como decidi que teria que aprender Hibernate mais cedo ou mais tarde resolvi migrar no meio do projeto, mas estou tendo alguns problemas.
1 - Como eu crio o banco via Hibernate? Pois eu criava com JDBC e começou a dar um erro estranho. Algo do tipo "the application must supply JDBC connections", e um amigo disse que eu deveria escolher apenas 1 API pra trabalhar... Ou 100% JDBC ou 100% Hibernate, mas eu não sei como eu crio o banco por Hibernate. Eu pesquisei sobre a propriedade hbm2ddl.auto, mas ainda não entendo como utilizá-la.
2 - Eu estou trabalhando com perfis. O usuário escolhe um perfil, e cada perfil tem um banco de dados próprio, que eu gostaria que o Hibernate criasse quando um perfil é cadastrado pelo usuário. O problema é que isso geraria várias URLs diferentes na hora de configurar o Hibernate, o que não é possível fazer com um .xml. Como eu poderia fazer pra configurar a URL dinamicamente a partir de uma variável (perfilAtual) que eu tenho em todos os meus JFrames?
Eu posso ter um XML assim:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver.class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url"></property>
<property name="hibernate.connection.username">APP</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
//<property name="hbm2ddl.auto">create</property>
<mapping resource="utilitarios/food.hbm.xml"/>
</session-factory>
</hibernate-configuration>
e criar a Factory assim? :
SessionFactory fabrica = new Configuration().configure("hibernate.cfg.xml").setProperty("hibernate.connection.url", "jdbc:derby:" + configAlimentos.systemDir + "DietManager").buildSessionFactory();
Session sessao = fabrica.openSession();
Porque dessa foram não está funcionando, só funciona se eu deixo ".configure()", sem o arquivo que eu desejo utilizar. E eu precisava definir qual arquivo de configuração eu quero usar, porque na hora de cadastrar perfis eu estou usando outro XML chamado "creation.cfg.xml", que seta a propriedade.
<property name="hbm2ddl.auto">create</property>
Obrigado pela atenção