如何将Spring管理的SessionCustomizer导入EclipseLink Config

时间:2013-01-17 13:25:51

标签: spring eclipselink spring-orm

我正在春季项目中使用eclipselink。我配置的一个必要部分是SessionCustomizer,它配置我的id-generator(Snowflake by twitter)。

是否可以使用spring处理此自定义程序的创建,以便我可以使用依赖项注入并使用属性占位符?

我发现定制程序的唯一例子总是在持久化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" />

1 个答案:

答案 0 :(得分:0)

虽然来自spring-aop的@Configurable注释(AspectJ集成)本来是一个解决方案,我决定使用静态SequenceHolder类来解决我的问题,其中我使用{{1}存储序列} bean。

最后,SequenceInstaller在persistencecontextfactory中安装存储的序列。

我必须在工厂和安装程序之间配置依赖关系,因为spring可能在安装程序之前处理了工厂。