Fórum Criar banco via JPA #421616
14/08/2012
0
Desde já agradeço a atenção.
Fernando Silva
Curtir tópico
+ 0Posts
15/08/2012
Robson Teixeira
att
robson
Gostei + 0
15/08/2012
Fernando Silva
Você tem algum exemplo ai
Gostei + 0
16/08/2012
Davi Costa
<property name="hibernate.hbm2ddl.auto" value="update" />
Este valor update vai gerar a primeira vez e sempre que alterar o mapeamento de suas entidades ele vai atualizar as colunas do banco.
Esta forma que coloquei acima pode variar um pouco dependendo da forma e das versões do hibernate.
att Davi
Gostei + 0
16/08/2012
Fernando Silva
Meu sistema terá um banco pra cada cliente, e este banco não quero criar manual e sim via sistema, irei criar só o banco administrativo manual, os dos clientes via sistema.
Eis o código:
public void criarBanco(AdmsisContratos1 _contrato) throws EncryptorException {
EntityManager em = JPAUtil.getInstace().createEntityManager();
try {
//
em.getTransaction().commit();
String sql = "create database "+ _contrato.getIdnomeconta1().trim()+
" with owner = postgres "+
" encoding = 'UTF8' "+
" tablespace = pg_default "+
" lc_collate = 'Portuguese_Brazil.1252' "+
" lc_ctype = 'Portuguese_Brazil.1252' "+
" connection limit = -1;";
Query query = em.createNativeQuery(sql);
query.executeUpdate();
//em.getTransaction().commit();
} finally {
if (em != null) {
em.close();
}
}
}
Gostei + 0
18/08/2012
Davi Costa
att Davi
Gostei + 0
20/08/2012
Fernando Silva
Eu quero criar o banco via programação pois irei ter vários bancos, é um sistema ERP cada cliente 1 banco de dados.
As tabelas serão geradas automaticamente, através da configuração do percistence.xml (eclipselink.ddl-generation), meu problema não em criar as tabelas e sim criar o banco de dados, pois preciso de um banco pra criar as tabelas.
Entendeu?
Gostei + 0
20/08/2012
Davi Costa
por exemplo no postgres vc deve se conectar no banco postgres que é default e owner e criar o seu banco.
Só que vai ter que ter cuidado nas configurações da sua app na primeira ver que subir a aplicação, mas na maioria dos casos o JPA já se conecta com o banco que a app vai utilizar.
att Davi
Gostei + 0
22/08/2012
Fernando Silva
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: ERRO: CREATE DATABASE não pode executar dentro de um bloco de transação Error Code: 0 Call: create database supervi with owner = postgres encoding = 'UTF8' tablespace = pg_default lc_collate = 'Portuguese_Brazil.1252' lc_ctype = 'Portuguese_Brazil.1252' connection limit = -1; Query: DataModifyQuery(sql="create database supervi with owner = postgres encoding = 'UTF8' tablespace = pg_default lc_collate = 'Portuguese_Brazil.1252' lc_ctype = 'Portuguese_Brazil.1252' connection limit = -1;")
Gostei + 0
23/08/2012
Davi Costa
att Davi
Gostei + 0
23/08/2012
Fernando Silva
Fernando.
Gostei + 0
23/08/2012
Davi Costa
que tal começar apenas por um create database, para ver se funciona.
Se ainda der problemas o ideal é criar uma conexão jdbc mesmo só para fazer isso. resolve seu problema.
att Davi
Gostei + 0
25/08/2012
Fernando Silva
Quando eu descobrir a solução no "JPA" coloco nele.
Obrigado a todos
Fernando Luiz.
Gostei + 0
27/08/2012
Davi Costa
att Davi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)