? Entonces quiero implementar mi aplicación java en heroku. Una vez desplegado, establece una variable de entorno DATABASE_URL. Quiero usar eso como mi url para hibernar. Actualmente tengo hibernate.cfg.xml y allí configuro el url jdbc: postgresql: // localhost: port/db de esta manera. ¿Cómo puedo cambiarlo para tomar DATABASE_URL?¿Cómo puedo configurar Hibernate con la variable de entorno
Respuesta
Una de las formas es usar setProperty(String propertyName, String value) de Configuration para anular explícitamente el valor de hibernate.connection.url
antes de crear SessionFactory.
Para obtener las variables de entorno, puede usar System.getenv(String name).
/**Load the hibernate.cfg.xml from the classpath**/
Configuration cfg = new Configuration();
cfg.setProperty("hibernate.connection.url", System.getenv("DATABASE_URL"));
SessionFactory sessionFactory = cfg.buildSessionFactory();
de mayo de este ayuda que,
estoy usando HSQL DB de JBoss AS 5.x e Hibernate para crear dinámicamente las tablas y el uso siguiente archivo * .cfg.xml.
que está utilizando $
JBOSS_HOME como variable de entorno.
<?xml version="1.0" encoding="UTF-8"?>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:$JBOSS_HOME/server/test/data/hypersonic/localDB</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">update</property>
<!-- Mapping files -->
<mapping resource="friends_presence_log.hbm.xml" />
<mapping resource="profileuuid.hbm.xml" />
</session-factory>
Por lo tanto, su media si desea utilizar la variable de entorno en Jboss entonces su configuración se puede utilizar normalmente que más tarde tomada por la utilidad interna hibernate.jar y obtienes conexión o cosas normalmente como en un programa Java.
Busqué mucho por otra solución sin programar nada en Java. vine a siguiente conclusión
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.check_nullability">false</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.username">${hibernate_username}</property>
<property name="hibernate.connection.password">${hibernate_password}</property>
<property name="hibernate.connection.url">jdbc:postgresql://${hibernate_db_host}/${hibernate_db_name}</property>
<property name="hibernate.search.autoregister_listeners">false</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">${hibernate_show_sql}</property>
</session-factory>
</hibernate-configuration>
y comienzo mi solicitud con la siguiente vmargs:
-Dhibernate_username=test-Dhibernate_password=testpassword -Dhibernate_db_host=localhost -Dhibernate_db_name=test -Dhibernate_show_sql=true
he puesto esta solución a este antiguo puesto, porque me encontré con esto en un viejo mensaje del foro (Búsqueda de Google Lado 3+ ^^). Y creo que esto es muy útil.
- 1. ¿Cómo uso la variable de entorno JAVA_OPTS?
- 2. ¿Cómo puedo verificar la existencia de una variable de entorno?
- 3. ¿Cómo configurar la variable env para PHP?
- 4. Cómo configurar la variable de entorno R_user para usar rpy2 en python
- 5. cómo establecer la variable de entorno para el usuario raíz
- 6. ¿Cómo puedo establecer una variable de entorno de forma multiplataforma?
- 7. ¿Cómo puedo evitar un error: ninguna variable de entorno?
- 8. ¿Cómo configurar automáticamente un entorno de desarrollo?
- 9. ¿Cómo configurar la variable de entorno para todas las pruebas en Eclipse?
- 10. cómo configurar la variable de entorno desde el contenido del archivo?
- 11. Cómo configurar ANT_HOME con Windows?
- 12. Configuración de la variable de entorno con maven 2.x
- 13. ¿Cómo puedo configurar la variable de PATH de Windows desde Perl?
- 14. whiptail: ¿Cómo redirigir la salida a la variable de entorno?
- 15. ¿Qué es la variable de entorno HTTP_AUTHORIZATION?
- 16. C# establecer la variable de entorno
- 17. ¿Qué pasó con la variable de entorno TMP?
- 18. ¿Es posible configurar una variable de entorno a la salida de un comando en cmd.exe
- 19. Cómo expandir la variable de entorno% CommonProgramFiles% \ system \ in .NET
- 20. ¿Cómo establecer la variable de entorno en Netbeans?
- 21. cómo insertar una variable de entorno en el indicador bash
- 22. ¿Cómo configurar el entorno OpenGL1.4 en la aplicación Firemonkey?
- 23. ¿Cómo puedo utilizar Hibernate con MS Access?
- 24. ¿Cómo establecer la variable de entorno o la propiedad del sistema en las pruebas de primavera?
- 25. ¿Cómo configurar un entorno de desarrollo en casa?
- 26. ¿Cómo puedo detectar el entorno de Heroku?
- 27. Lea una variable de entorno en Java con Websphere
- 28. Python: cómo configurar dinámicamente el entorno de cierre de función
- 29. Variable de entorno en la consola de Rails y Pow
- 30. Configuración de la variable de entorno en el script ant
Muchas gracias, lo descubrí hace unos minutos. :) –
Por favor, hágamelo saber si está bien o no. Buena suerte :) –
Es posible que deba modificar la cadena devuelta por System.getenv ("DATABASE_URL"). –