UNIDADE DE PERSISTÊNCIA COM VALORES DINAMICOS
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
Curtidas 0
Respostas
Ronaldo Lanhellas
13/10/2014
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.
GOSTEI 0
John Lima
13/10/2014
como seria ?
GOSTEI 0
Ronaldo Lanhellas
13/10/2014
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();
}
GOSTEI 0
John Lima
13/10/2014
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 ?
GOSTEI 0
Ronaldo Lanhellas
13/10/2014
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.
GOSTEI 0
John Lima
13/10/2014
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
GOSTEI 0
Ronaldo Lanhellas
13/10/2014
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");
GOSTEI 0
John Lima
13/10/2014
mesmo assim esta pedindo para eu addcionar a classe
GOSTEI 0