In Spring 3.1 and later, LocalContainerEntityManagerFactoryBean must be configured for JPA EntityManagerFactory without persistence.xml. Configuration is included in the bean definition for LocalContainerEntityManagerFactoryBean.
When I use the packagesToScan method to tell the factory bean where to scan my entity classes, it does not seem to raise my hibernation type definitions that are defined at the package level.
package-info.java:
@org.hibernate.annotations.TypeDefs({ @org.hibernate.annotations.TypeDef(name = "TypeA", typeClass = com.foo.type.A.class), @org.hibernate.annotations.TypeDef(name = "TypeB", typeClass = com.foo.type.B.class) }) package com.foo.type;
spring-jpa.xml:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" lazy-init="true"> <property name="dataSource" ref="dataSource" /> <property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" /> </property> <property name="jpaPropertyMap"> <map> <entry key="hibernate.dialect" value="com.foo.FooDialect" /> <entry key="hibernate.default_schema" value="dba"/> <entry key="hibernate.cache.use_query_cache" value="false"/> <entry key="hibernate.cache.use_second_level_cache" value="true"/> <entry key="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory"/> <entry key="net.sf.ehcache.configurationResourceName" value="META-INF/ehcache.xml" /> <entry key="javax.persistence.validation.factory" value-ref="validator"/> </map> </property> <property name="packagesToScan"> <list> <value>com.foo.domain</value> <value>com.foo.type</value> </list> </property> </bean>
Is there any way to make this work?
Jayl
source share