#java #jpa #spring-data-jpa #persistence #persistence.xml
Вопрос:
У меня есть persistence.xml файл, который используется для загрузки базы данных и подключений.
У меня есть имя пользователя и пароль, хранящиеся в нем вот так:
lt;!-- MySQL --gt; lt;property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydatabase"/gt; lt;!-- Credentials --gt; lt;property name="javax.persistence.jdbc.user" value="this is user"/gt; lt;property name="javax.persistence.jdbc.password" value="this is password"/gt;
Теперь у меня есть требование не хранить их подобным образом в кодовой базе и я хочу получить их программно по проводу. Как я могу этого достичь ?
Ответ №1:
чтобы установить значения динамически, вы можете сделать это следующим образом:
в файле config.properties установите эти параметры, а затем получите к ним доступ
jdbc.url=jdbc:mysql://localhost:3306/my_database jdbc.username=root jdbc.password=123 lt;property name="javax.persistence.jdbc.url" value="${jdbc.url}" /gt; lt;property name="javax.persistence.jdbc.password" value="${jdbc.properties}" /gt;
или, если вы хотите получить их в контроллере, вы можете получить их с помощью «EntityManagerFactory».
EntityManagerFactory emf = entityManager.getEntityManagerFactory(); Maplt;String, Objectgt; emfProperties = emf.getProperties(); String url = (String) emfProperties.get("javax.persistence.jdbc.url"); String user = (String) emfProperties.get("javax.persistence.jdbc.user"); String password = (String) emfProperties.get("javax.persistence.jdbc.password");
Комментарии:
1. не могли бы вы уточнить ? у меня есть только jpa, а не спящий режим
2. вы можете использовать репозиторий jpa, и не могли бы вы, пожалуйста, уточнить свой вопрос
and want to fetch them programatically through a wire.