2013-01-17 30 views
0

我正在使用eclipselink進行彈簧工程。我配置的一個必要部分是一個SessionCustomizer,它配置我的id生成器(通過twitter發送Snowflake)。我如何獲得彈簧管理的SessionCustomizer到EclipseLink配置中

是否有可能使用spring處理這個定製器的創建,所以我可以使用依賴注入並使用屬性佔位符?

我發現Customizers的唯一例子總是在persistence xml中配置類。

這是到目前爲止我的配置:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <property name="persistenceUnitName" value="platform.auth-service" /> 
    <property name="jpaDialect" ref="jpaDialect" /> 
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" /> 
    <property name="jpaPropertyMap" ref="jPAPropertyProviderMap" /> 
</bean> 
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter"> 
    <property name="generateDdl" value="${database.generateTables}" /> 
    <property name="databasePlatform" value="${database.platform}" /> 
</bean> 
<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" /> 

回答

0

雖然從Spring AOP(AspectJ的集成)的@Configurable註解將是一個解決方案,我決定來解決我的問題帶有靜態SequenceHolder類,其中i存儲序列與一個SequenceInstaller豆。

最後,SessionCustomizer將存儲的序列安裝在persistencecontextfactory中。

我必須配置工廠和安裝程序之間的依賴關係,因爲spring可能在安裝程序之前處理過工廠。