<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManager" /> </bean> <bean id="entityManager" depends-on="dataSource" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan" value="...packages...persistence.entity" /> <property name="persistenceUnitName" value="gigi" /> <property name="persistenceProvider"> <bean class="org.hibernate.jpa.HibernatePersistenceProvider" /> </property> <property name="jpaPropertyMap" ref="jpaPropertyMap" /> <property name="jpaVendorAdapter" ref="jpaVendorAdapter" /> <property name="jpaDialect"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> </property> </bean> <jpa:repositories base-package="...some package..." entity-manager-factory-ref="entityManager" transaction-manager-ref="transactionManager"> <repository:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </jpa:repositories> <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="database" value="POSTGRESQL"/> <property name="showSql" value="true"/> <property name="databasePlatform" value="org.eclipse.persistence.platform.database.PostgreSQLPlatform"/> </bean> <util:properties id="jpaPropertyMap"> <prop key="hibernate.transaction.jta.platform"> org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform </prop> <prop key="hibernate.connection.autocommit">false</prop> <prop key="hibernate.dialect"> org.hibernate.spatial.dialect.postgis.PostgisDialect </prop> <prop key="hibernate.show_sql">true</prop> </util:properties> <bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator"/>