public class PersistancePropertiesFactoryBean extends Object implements org.springframework.beans.factory.FactoryBean<Map>
В bean.xml нужно добавить properties в описание данного бина:
1. DataSource
<property name="dataSource" ref="dataSource"/>
2. Путь к файлам model.jpa, data.sql (если в проекте файл не используется, то его не прописываем)
<property name="model" value="META-INF/model.jpa"/>
<property name="data" value="META-INF/sql/data.sql"/>
После этого данный bean прописать как property в LocalContainerEntityManagerFactoryBean. Должно получится примерно так:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
<property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"></property>
<property name="jpaPropertyMap" ref="jpaPropertyMap"/>
</bean>
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/*наименование вашей БД*"/>
<bean id="jpaPropertyMap" class="ru.ilb.common.jpa.configurations.PersistancePropertiesFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="model" value="META-INF/model.jpa"/>
<property name="data" value="META-INF/sql/data.sql"/>
</bean>
По данным файлам будут устанавливаться соответствующие JpaProperty, но только если в этих файлах что-то было изменено. То, что файл был изменен, определяем через чек сумму файла(md5).
При этом соответствующие JpaProperty должны быть отключены для данной БД. Например, в persistence.xml закомментировать данные строки:
Для model:
<property name="javax.persistence.schema-generation.database.action" value="create-or-extend-tables"/>
Для data:
<property name="javax.persistence.sql-load-script-source" value="META-INF/sql/data.sql"/>
Это сделано для того чтобы уменьшить время деплоя проекта.
| Constructor and Description |
|---|
PersistancePropertiesFactoryBean() |
| Modifier and Type | Method and Description |
|---|---|
Map |
getObject() |
Class<? extends Map> |
getObjectType() |
boolean |
isSingleton() |
void |
setData(String data) |
void |
setDataSource(DataSource dataSource) |
void |
setModel(String model) |
public void setModel(String model)
public void setData(String data)
public void setDataSource(DataSource dataSource)
public Class<? extends Map> getObjectType()
getObjectType in interface org.springframework.beans.factory.FactoryBean<Map>public boolean isSingleton()
isSingleton in interface org.springframework.beans.factory.FactoryBean<Map>Copyright © 2019. All rights reserved.