[jboss-user] [JBoss/Spring Integration] - Spring+JPA can not commit data.

faisalaziz do-not-reply at jboss.com
Sun Jul 13 00:43:09 EDT 2008


Spring 2.0.6
JBoss 4.2.2 GA
JDK 6

persistence.xml

  | <persistence-unit name="analytics" transaction-type="RESOURCE_LOCAL">
  |         <!--<jta-data-source>java:/@db.datasource.jndi@</jta-data-source>-->
  |         <non-jta-data-source>java:analyticsDS</non-jta-data-source>
  |         <properties>
  |             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
  |             <property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
  |             <property name="hibernate.use_second_level_cache" value="true" />
  |             <property name="hibernate.use_query_cache" value="true" />
  |         </properties>
  |     </persistence-unit>
  | 

applicationContext.xml

  |     <import resource="jpaDaoContext.xml" />
  |     <import resource="servicesContext.xml" />
  |     
  |     <!-- Datasource configuration -->
  |     <bean id="loanaccounting-jpa-ds" class="org.springframework.jndi.JndiObjectFactoryBean">
  |         <property name="jndiName" value="java:comp/env/jdbc/analytics" />
  |     </bean>
  |     
  |     <!-- Entity Manager + JPA Configuration -->
  |     <bean id="entityManagerFactory"
  |           class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  |         <property name="dataSource" ref="loanaccounting-jpa-ds" />
  |         <property name="persistenceUnitName" value="analytics" />
  |         <property name="jpaVendorAdapter">
  |             <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
  |                 <property name="database" value="MYSQL"/>
  |                 <property name="generateDdl" value="false"/>
  |                 <property name="showSql" value="false" />
  |             </bean>
  |         </property>
  |         <property name="jpaPropertyMap">
  |             <props>
  |                 <prop key="hibernate.cache.use_second_level_cache">true</prop>
  |                 <prop key="hibernate.cache.use_query_cache">true</prop>
  |                 <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
  |                 <prop key="hibernate.jdbc.batch_size">50</prop>
  |                 <prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</prop>
  |                 <prop key="hibernate.generate_statistics">true</prop>
  |             </props>
  |         </property>
  |     </bean>
  | 

jpaContext.xml

  | <!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA) -->
  |     <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  |         <property name="entityManagerFactory" ref="entityManagerFactory"/>
  |     </bean>
  |     
  |     <aop:config>
  |         <aop:pointcut id="serviceOperation"
  |             expression="execution(* com.primatics.analytics.service..*.*(..))"/>
  |         <aop:advisor pointcut-ref="serviceOperation" advice-ref="txAdvice"/>
  |     </aop:config>
  |     
  |     <tx:advice id="txAdvice" transaction-manager="transactionManager">
  |         <tx:attributes>
  |             <tx:method name="get*"      read-only="true"    propagation="SUPPORTS"/>
  |             <tx:method name="save*"     read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="update*"   read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="insert*"   read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="create*"   read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="persist*"  read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="delete*"   read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="remove*"   read-only="false"   propagation="REQUIRES_NEW"/>
  |             <tx:method name="register*" read-only="false"   propagation="REQUIRES_NEW"/>
  |         </tx:attributes>
  |     </tx:advice>
  |   
  |     <!-- JPA annotations bean post processor.
  |         Will inject persistence related resources. -->
  |     <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
  |     <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
  |     <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor" />
  | 

JBoss server.log snippet

  | DEBUG [org.hibernate.engine.TwoPhaseLoad] resolving associations for [com.primatics.analytics.auth.UserStatus#VALIDATION_PENDING]
  | DEBUG [org.hibernate.engine.TwoPhaseLoad] adding entity to second-level cache: [com.primatics.analytics.auth.UserStatus#VALIDATION_PENDING]
  | DEBUG [org.hibernate.engine.TwoPhaseLoad] done materializing entity [com.primatics.analytics.auth.UserStatus#VALIDATION_PENDING]
  | DEBUG [org.hibernate.engine.StatefulPersistenceContext] initializing non-lazy collections
  | DEBUG [org.hibernate.event.def.AbstractSaveEventListener] delaying identity-insert due to no transaction in progress
  | DEBUG [org.springframework.transaction.interceptor.TransactionInterceptor] Completing transaction for [com.primatics.analytics.service.admin.RegistrationService.createCustomer]
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Triggering beforeCommit synchronization
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Triggering beforeCompletion synchronization
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Initiating transaction commit
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Committing JPA transaction on EntityManager [org.hibernate.ejb.EntityManagerImpl at 174689]
  | DEBUG [org.hibernate.transaction.JDBCTransaction] commit
  | DEBUG [org.hibernate.transaction.JDBCTransaction] re-enabling autocommit
  | DEBUG [org.hibernate.transaction.JDBCTransaction] committed JDBC Connection
  | DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
  | DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Triggering afterCommit synchronization
  | DEBUG [org.springframework.orm.jpa.JpaTransactionManager] Triggering afterCompletion synchronization
  | DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Clearing transaction synchronization
  | 

It seems for some reason hiberate does not like the setup. Please help me out here.


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4164062#4164062

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4164062



More information about the jboss-user mailing list