Properties com Persistence.xml

1 resposta
darklordkamui

Boa Tarde Pessoal

estou com uma duvida que é a seguinte, eu tenho um arquivo banco.properties que possui as seguintes configurações…

user:root
password:123456
database:desenv

e meu persistence.xml

<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_1_0.xsd" version="1.0"> <persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.connection.url" value="jdbc:postgresql://locahost:5432/teste" /> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" /> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.connection.username" value="${user}" /> <property name="hibernate.connection.password" value="${password}" /> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.cache.use_second_level_cache" value="false" /> </properties> </persistence-unit> </persistence>

só que nao consigo chamar no meu persistence.xml a senha e usuario do meu banco.properties, alguem pode me ajudar??

1 Resposta

J

Você vai ter que codificar:

no seu properties você vai ter que ter as mesmas chaves que os properties do seu persistence.xml possui.

E no seu código que carrega seu Persistence.xml terá que passar as chaves e valores para seu persistence.xml.

try{
	    	  Properties properties = new Properties();
	    	    try {
	    	        properties.load(EM.class.getClassLoader().getResourceAsStream("jdbc.properties"));
		    	    for (final Entry<Object, Object> entry : properties.entrySet()) {
		    	    	propertiesJPA.put((String) entry.getKey(), (String) entry.getValue());
		    	    }
	    	    } catch (IOException e) {
	    	    	e.printStackTrace();
	    	    }
			Persistence.createEntityManagerFactory("MYjpa", propertiesJPA);

Quer dizer então que meu persistence não terá mais nada dentro da tag ? Exatamente!

e no seu jdbc.properties terá os valores:

hibernate.connection.url = jdbc:postgresql://locahost:5432 hibernate.connection.driver_class = org.postgresql.Driver

Ou seja não tem como fazer no persistence.xml uma passagem de parametros:

<property name="hibernate.connection.username" value="${user}" />

Espero ter ajudado

Criado 14 de janeiro de 2014
Ultima resposta 22 de jan. de 2014
Respostas 1
Participantes 2