Fórum UNIDADE DE PERSISTÊNCIA COM VALORES DINAMICOS #497604

13/10/2014

0

Boa tarde gostaria de saber, como poderia fazer para o valores definido no meu arquivo de persistências tais como usuário, senha e host fosse feito de forma dinâmica, ou seja, em um arquivo de txt ou properties.
John Lima

John Lima

Responder

Posts

13/10/2014

Ronaldo Lanhellas

Bom, se você usa um persistence.xml para realizar tais configuração, você deve usar ele e não há como criar um "txt" auxiliar para preencher esses campos. A única forma é definir o seu persistence.xml programaticamente, ou seja, em vez de criar o XML você define tudo direto no Java, neste caso você pode fazer a leitura de um txt ou qualquer outro arquivo e definir suas configurações de forma dinâmica.
Responder

Gostei + 0

13/10/2014

John Lima

como seria ?
Responder

Gostei + 0

13/10/2014

Ronaldo Lanhellas

Veja este exemplo:

public static EntityManager createEntityManager() {
	Properties properties = new Properties();
	properties.put("javax.persistence.provider", "org.hibernate.ejb.HibernatePersistence");
	properties.put("javax.persistence.transactionType", "RESOURCE_LOCAL");
	properties.put("hibernate.connection.username", "sa");
	properties.put("hibernate.connection.password" ,"");
	properties.put("hibernate.connection.driver_class","org.hsqldb.jdbcDriver");			
	properties.put("hibernate.connection.url", "jdbc:hsqldb:." );
	properties.put("hibernate.dialect" ,"org.hibernate.dialect.HSQLDialect");
	properties.put("hibernate.hbm2ddl.auto","create-drop");
	properties.put("hibernate.show_sql","true");
	properties.put("hibernate.format_sql" ,"true");	
	//
	Ejb3Configuration cfg = new Ejb3Configuration();
	cfg.addProperties(properties);
	cfg.addAnnotatedClass(City.class);
	cfg.addAnnotatedClass(LocalCustomer.class);
	//
	EntityManagerFactory factory = cfg.buildEntityManagerFactory();
	return factory.createEntityManager();
}
Responder

Gostei + 0

13/10/2014

John Lima

Entedir Ronaldo, então meu factory não iria receber mais um Persistence.createEntityManageFactory e sim cfg.buildEntityManagerFactory(). Etão a unica diferença seria que eu iria ter que anota as minhas classe manualmente, e o problema das classe esta informando que não existe classe de persistencia ?
Responder

Gostei + 0

13/10/2014

Ronaldo Lanhellas

Querendo ou não a anotação é manual, ou você faz direto na classe ou você faz através do XML, não entendi bem sua questão.
Responder

Gostei + 0

13/10/2014

John Lima

sempre que crio uma classe e anoto ela como uma tabela e uma entidade o netbeans adicionar ela no xml. e quando eu faço a anotação e não possuo uma unidade de persistência o netbeans me informa que eu preciso criar uma
Responder

Gostei + 0

13/10/2014

Ronaldo Lanhellas

sempre que crio uma classe e anoto ela como uma tabela e uma entidade o netbeans adicionar ela no xml. e quando eu faço a anotação e não possuo uma unidade de persistência o netbeans me informa que eu preciso criar uma


Tenta adicionar a seguinte propriedade:

properties.put("hibernate.archive.autodetection", "class,hbm");
Responder

Gostei + 0

13/10/2014

John Lima

mesmo assim esta pedindo para eu addcionar a classe
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar