Я искал это последние несколько часов, может быть, некоторые из вас могут мне помочь.
Я пытаюсь добиться перезагрузки моей информации о карте в EntityManagerFactory (или SessionFactory) ввесной выполнения
EntityManagerFactory определяется следующим образом:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="persistence.xml" />
<property name="persistenceUnitName" value="JPAService" />
<property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/>
<property name="dataSource" ref="dataSource" />
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.Hibernate.JpaDialect" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.hbm2ddl.auto">none</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
В моем файле persistence.xml я просто определяю банку, в которой файлы сопоставления
<?xml version="1.0" encoding="UTF-8"?>
<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="JPAService" transaction-type="RESOURCE_LOCAL">
<jar-file>WEB-INF/lib/mapping.jar</jar-file>
</persistence-unit>
</persistence>
Мои файлы отображения hibernate будут меняться очень часто, и мое приложение использует эти файлы для создания части пользовательского интерфейса.Поэтому я не хочу перезапускать сервер каждый раз, когда меняю свои отображения гибернации.
Одна вещь, о которой я подумал, - это заменить EntityManagerFacotries / SessionFactory на новую, например, такую:
Hibernateконфигурация во время выполнения
Динамический Настройка EJB
, но я не знаю побочных эффектов
Другой способ - изменить (добавить / удалить)EntityManagerFactory / SessionFactory Отображение программно во время выполнения:
JPA: добавление объектов в EntityManagerFactory программным путем
Программная загрузка классов объектов с помощью JPA 2.0?
Очень сложный сценарий, в котором решение не найдено
Генерация динамического класса сущностей ORM - НЕ РЕШЕНА
В другой статье упоминается dynamic-JPA
Как объединить / расширить единицы персистентности из разных JAR-файлов?
JPA 2.0: добавление классов сущностей в PersistenceUnit * издругой jar * автоматически
Я уже пытался обновить весь контекст приложения с весны, вот так
@RequestMapping(value = { "/path" })
public ModelMap refresh(Model model, Locale locale) throws IOException,
TemplateException, ExtJSException {
((ConfigurableApplicationContext)ApplicationContextProvider.getApplicationContext()).refresh();
return getMessage("Context was refreshed!!");
}
Но кажется, что этот проект больше не поддерживается ...