Transaction - Spring - Exception

13 respostas
C

Opa!

Criei um sistema com Spring, Hibernate e JSF. Porem nao estou conseguindo criar Transactions nos meus metodos de negocio. O Sistema funciona perfeitamente, mas o controle de transação aparentemente nao existe.
Gostaria que todas as minhas classes de negocio faça o commit apenas no retorno do metodo e faça rollback quando lança Exception, algo similar com o controle de transação do EJB Session. Meu codigo é o seguinte:

ClientBusiness.java

/**
 * Type: Business
 * Description: Client Business
 * 
 * @author Claudio Nazzari
 */
public interface ClientBusiness {


	/**
	 * Create Client
	 * @param cliente
	 */
	public Long create(Client client) throws MulunguException;
	
	/**
	 * Create Client
	 * @param cliente
	 */
	public Client createLoginBudget(Client client) throws MulunguException;


    ...

}

ClientBusinessImpl.java

/**
 * Type: Business
 * Description: Client Business
 * 
 * @author Claudio Nazzari
 */
@Service
@Transactional(
	    propagation = Propagation.REQUIRED,
	    isolation = Isolation.DEFAULT,
	    readOnly = false,
	    rollbackFor = MulunguException.class)
public class ClientBusinessImpl extends BusinessBean implements ClientBusiness {
	
	/**
	 * employeeDAOImpl
	 */
	@Autowired
	private ClientDAO clientDAO;
	
	/**
	 * employeeDAOImpl
	 */
	@Autowired
	private BudgetDAO budgetDAO;
	
	/**
	 * employeeDAOImpl
	 */
	@Autowired
	private BudgetParcelDAO budgetParcelDAO;
	
	/**
	 * Create Client
	 * @param cliente
	 */
	public Long create(Client client) throws MulunguException {
		validadeClient(client);
		return clientDAO.save(client).getId();
			
	}
	
	/**
	 * Create Client
	 * @param cliente
	 */
	public Client createLoginBudget(Client client) throws MulunguException {
		client.setStatus(0L);
		client = clientDAO.save(client);
		return client;
			
	}

    ...

}

applicationContext.xml

...
	
	<!-- PROPERTIES -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location"><value>/WEB-INF/jdbc-hsqlweb.properties</value></property>
	</bean>
	
	<!-- DATA SOURCE -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
		<property name="driverClassName" value="${driverClassName}"/>
		<property name="url" value="${url}"/>
		<property name="username" value="${username}"/>
		<property name="password" value="${password}"/>
    </bean>  

    <!-- SESSION FACTORY -->  
    <bean id="sessionFactory"  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
       <property name="dataSource" ref="dataSource" />
       
       <property name="annotatedClasses">  
       
          <list>  
			...
          </list>  
          
       </property>  
       
       <property name="hibernateProperties">  
          <props>
             <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>  
             	<prop key="hibernate.show_sql">true</prop>  
             	<prop key="hibernate.format_sql">false</prop>  
				<prop key="hibernate.hbm2ddl.auto">update</prop>
          </props>  
       </property>  
    </bean>  
    
    <!-- TRANSACTION MANAGER -->  
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
	
	<context:annotation-config />
	<tx:annotation-driven transaction-manager="transactionManager" />
	<context:component-scan base-package="br.com.nazzari.mulungu.model.component.business.impl" />
	<context:component-scan base-package="br.com.nazzari.mulungu.model.component.dao.impl" />

    ...
Dessa forma configurada não funciona de geito nenhum !
Alguem pode me ajudar?

Obrigado !

13 Respostas

M

Não tenho certeza, mas acho que anotações não são extensíveis, ou seja, a anotação @Transactional no caso só é aplicada para ClientBusiness e nao para ClientBusinessImpl.

tente colocar no ClientBusinessImpl e ver se rosolve :?

C

maschiojv:
Não tenho certeza, mas acho que anotações não são extensíveis, ou seja, a anotação @Transactional no caso só é aplicada para ClientBusiness e nao para ClientBusinessImpl.

tente colocar no ClientBusinessImpl e ver se rosolve :?

Coloquei mas o problema continua…

É como se nao existise nenhuma transação nos metodos, ja tentei colocar @Transactional nos metodos mas tambem nao funciona.

:frowning:

J

Pergunta:
O seu banco suporta transações?

[]´s

L

A documentação do Spring sugere o uso da anotação @Transactional nas classes concretas:

Spring recommends that you only annotate concrete classes (and methods of concrete classes)
with the @Transactional annotation, as opposed to annotating interfaces. You certainly
can place the @Transactional annotation on an interface (or an interface method), but
this works only as you would expect it to if you are using interface-based proxies. The fact
that annotations are not inherited means that if you are using class-based proxies
(proxy-target-class=“true”) or the weaving-based aspect (mode=“aspectj”),
then the transaction settings are not recognized by the proxying and weaving infrastructure,
and the object will not be wrapped in a transactional proxy, which would be decidedly bad.

Spring Documentation - Part IV (Data Access) - 10.5 Declarative transaction management - Using @Transactional

Outra coisa, sua classe está no base-package que você definiu no elemento <context:component-scan>?

C

jgbt:
Pergunta:
O seu banco suporta transações?

[]´s

Olha, eu acho que sim haha !
Estou usando HSQLDB e Porsgresql e em ambos nao esta funcionando. Busquei na internet e os dois bancos suportam transação.

C

legionarioba:
A documentação do Spring sugere o uso da anotação @Transactional nas classes concretas:

Spring recommends that you only annotate concrete classes (and methods of concrete classes)
with the @Transactional annotation, as opposed to annotating interfaces. You certainly
can place the @Transactional annotation on an interface (or an interface method), but
this works only as you would expect it to if you are using interface-based proxies. The fact
that annotations are not inherited means that if you are using class-based proxies
(proxy-target-class=“true”) or the weaving-based aspect (mode=“aspectj”),
then the transaction settings are not recognized by the proxying and weaving infrastructure,
and the object will not be wrapped in a transactional proxy, which would be decidedly bad.

Spring Documentation - Part IV (Data Access) - 10.5 Declarative transaction management - Using @Transactional

Outra coisa, sua classe está no base-package que você definiu no elemento <context:component-scan>?

O component-scan esta correto, ate porque o sistema esta funcionando normalmente. O Problema é que ele esta com “autocommit” nos inserts e nao esta fazendo rollback nas exeptions, ou seja, a transaction esta sendo ingorada. Mesmo com o @Transaction no Impl

L

Auto-commit no banco? Dê uma olhada no log, mas que eu lembre, mesmo que seu banco esteja configurado assim, o Transaction Manager do Spring desabilita o mesmo. Se eu conseguir gerar um log te confirmo, mas isso não seria de fato empecilho pra que o rollback seja efetuado… Copie o log gerado pelo Spring pra operação que você está tentando executar pra analisarmos aqui…

C

Opa, obrigado pela ajuda.

Na verdade o “autocomit” foi apenas exemplificando. A propriedade do hibernate esta com autocomit = false mesmo…
Aqui estou testando da seguinte maneira:

1- Debugo o codigo logo apos a chamada do metodo "create" e verifico se, antes de retornar o metodo, o registro foi gravado. Neste caso esta gravando antes de retornar.
2- Forço uma exception na minha DAO e lanço como MulunguException, o que deveria fazer o rollback dos registros inseridos, o que tambem nao ocorre.

Obrigado!

C

O Log que esta gerando é de sucesso, ele consegue inserir mas não tem como regra comitar apenas no final

Hibernate: insert into client (id, active, city_id, contact1, contact2, country_id, cpfCnpj, email, name, password, residencialCEP, residentialAddress, residentialNumber, rule, state_id, status) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: call identity()
Hibernate: select budget0_.id as id63_, budget0_.cep as cep63_, budget0_.client_id as client9_63_, budget0_.extension as extension63_, budget0_.justifyMessage as justifyM4_63_, budget0_.orderId as orderId63_, budget0_.quantityParcel as quantity6_63_, budget0_.status as status63_, budget0_.value as value63_ from budget budget0_ where budget0_.client_id=?
L

Esse é o log do Hibernate. Tenta colocar o log do Spring, ele vai mostrar o momento em que a transação está sendo aberta, quando a conexão JDBC é criada, quando acontece commit, rollback etc…deve ajudar…

C
...
15/10/2009 14:53:24 org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
15/10/2009 14:53:24 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.XmlWebApplicationContext@1b6634c: display name [Root WebApplicationContext]; startup date [Thu Oct 15 14:53:24 BRT 2009]; root of context hierarchy
15/10/2009 14:53:24 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
15/10/2009 14:53:24 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@1b6634c]: org.springframework.beans.factory.support.DefaultListableBeanFactory@ecd92c
15/10/2009 14:53:24 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
INFO: Loading properties file from ServletContext resource [/WEB-INF/jdbc-hsqlweb.properties]
15/10/2009 14:53:25 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ecd92c: defining beans [propertyConfigurer,dataSource,sessionFactory,org.springframework.aop.config.internalAutoProxyCreator,
org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,
org.springframework.transaction.config.internalTransactionAdvisor,txManager,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,
org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,
org.springframework.context.annotation.internalRequiredAnnotationProcessor,budgetBusinessImpl,cityBusinessImpl,clientBusinessImpl,supplierBusinessImpl,
budgetDAOImpl,budgetParcelDAOImpl,cityDAOImpl,clientDAOImpl,countryDAOImpl,productColorDAOImpl,productColorValueDAOImpl,productDAOImpl,
productTypeDAOImpl]; root of factory hierarchy
15/10/2009 14:53:25 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: org.hsqldb.jdbcDriver
0 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: Hibernate 3.2.6
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: hibernate.properties not found
15/10/2009 14:53:25 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: using JDK 1.4 java.sql.Timestamp handling
94 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.CR1
...
406 [main] INFO org.hibernate.validator.Version - Hibernate Validator 3.1.0.CR1
15/10/2009 14:53:25 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
438 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
15/10/2009 14:53:25 org.hibernate.connection.ConnectionProviderFactory newConnectionProvider
INFO: Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: RDBMS: HSQL Database Engine, version: 1.8.0
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC driver: HSQL Database Engine Driver, version: 1.8.0
15/10/2009 14:53:25 org.hibernate.dialect.Dialect &lt;init&gt;
INFO: Using dialect: org.hibernate.dialect.HSQLDialect
15/10/2009 14:53:25 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
15/10/2009 14:53:25 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch size: 15
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch updates for versioned data: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
15/10/2009 14:53:25 org.hibernate.hql.ast.ASTQueryTranslatorFactory &lt;init&gt;
INFO: Using ASTQueryTranslatorFactory
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.NoCacheProvider
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
15/10/2009 14:53:25 org.hibernate.impl.SessionFactoryImpl &lt;init&gt;
INFO: building session factory
15/10/2009 14:53:26 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: Running hbm2ddl schema update
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: fetching database metadata
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: updating schema
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.BUDGET
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [extension, client_id, value, cep, justifymessage, orderid, status, quantityparcel, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fkaddaaf455c670a6b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2828, sys_idx_2852]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.BUDGETPARCEL
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [value, pay, datevalidate, orderid, budget_id, paynumber, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk94f953ae6840a02b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2854, sys_idx_2830]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.CITY
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [state_id, description, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk2e996b8fe9d569]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [city_index_01, sys_idx_2856, sys_idx_2832]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.CLIENT
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [state_id, active, contact1, password, residentialnumber, cpfcnpj, country_id, residentialaddress, city_id, status, id, residencialcep, rule, contact2, email, name]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fkaf12f3cbb7e62389, fkaf12f3cb8fe9d569, fkaf12f3cbf71696ab]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2862, sys_idx_2858, client_index_01, sys_idx_2860, sys_idx_sys_ct_2834_2837, sys_idx_2835]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.COUNTRY
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [abbreviation, description, ddi, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: []
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [country_index_01, sys_idx_2838]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCT
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [extension, value, producttype_id, supplier_id, linkexternal, description, status, name, idexternal, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fked8dccefb0b8b8ca, fked8dccef3d86bb49]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2842, sys_idx_2864, sys_idx_2866]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTCOLOR
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [code, client_id, customcolor, name, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk3aec2fb45c670a6b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2868, sys_idx_2844]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTCOLORVALUE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [productcolor_id, product_id, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk246b221d117e78e9, fk246b221d752c40eb]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2870, sys_idx_2872, sys_idx_2846]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTTYPE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [name, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: []
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2848]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.STATE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [country_id, abbreviation, description, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk68ac491b7e62389]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [state_index_01, sys_idx_2874, sys_idx_2850]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: schema update complete
15/10/2009 14:53:26 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@666a53] of Hibernate SessionFactory for HibernateTransactionManager
15/10/2009 14:53:26 org.springframework.web.context.ContextLoader initWebApplicationContext
...
L
...
15/10/2009 14:53:24 org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
15/10/2009 14:53:24 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.XmlWebApplicationContext@1b6634c: display name [Root WebApplicationContext]; startup date [Thu Oct 15 14:53:24 BRT 2009]; root of context hierarchy
15/10/2009 14:53:24 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
15/10/2009 14:53:24 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.XmlWebApplicationContext@1b6634c]: org.springframework.beans.factory.support.DefaultListableBeanFactory@ecd92c
15/10/2009 14:53:24 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
INFO: Loading properties file from ServletContext resource [/WEB-INF/jdbc-hsqlweb.properties]
15/10/2009 14:53:25 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@ecd92c: defining beans [propertyConfigurer,dataSource,sessionFactory,org.springframework.aop.config.internalAutoProxyCreator,
org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,
org.springframework.transaction.config.internalTransactionAdvisor,txManager,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,
org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,
org.springframework.context.annotation.internalRequiredAnnotationProcessor,budgetBusinessImpl,cityBusinessImpl,clientBusinessImpl,supplierBusinessImpl,
budgetDAOImpl,budgetParcelDAOImpl,cityDAOImpl,clientDAOImpl,countryDAOImpl,productColorDAOImpl,productColorValueDAOImpl,productDAOImpl,
productTypeDAOImpl]; root of factory hierarchy
15/10/2009 14:53:25 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
INFO: Loaded JDBC driver: org.hsqldb.jdbcDriver
0 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: Hibernate 3.2.6
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: hibernate.properties not found
15/10/2009 14:53:25 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
15/10/2009 14:53:25 org.hibernate.cfg.Environment &lt;clinit&gt;
INFO: using JDK 1.4 java.sql.Timestamp handling
94 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.CR1
...
406 [main] INFO org.hibernate.validator.Version - Hibernate Validator 3.1.0.CR1
15/10/2009 14:53:25 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
INFO: Building new Hibernate SessionFactory
438 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
15/10/2009 14:53:25 org.hibernate.connection.ConnectionProviderFactory newConnectionProvider
INFO: Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: RDBMS: HSQL Database Engine, version: 1.8.0
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC driver: HSQL Database Engine Driver, version: 1.8.0
15/10/2009 14:53:25 org.hibernate.dialect.Dialect &lt;init&gt;
INFO: Using dialect: org.hibernate.dialect.HSQLDialect
15/10/2009 14:53:25 org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
INFO: Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
15/10/2009 14:53:25 org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic flush during beforeCompletion(): disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Automatic session close at end of transaction: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch size: 15
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC batch updates for versioned data: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Scrollable result sets: enabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JDBC3 getGeneratedKeys(): disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Connection release mode: auto
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default batch fetch size: 1
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Generate SQL with comments: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL updates by primary key: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Order SQL inserts for batching: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
15/10/2009 14:53:25 org.hibernate.hql.ast.ASTQueryTranslatorFactory &lt;init&gt;
INFO: Using ASTQueryTranslatorFactory
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query language substitutions: {}
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: JPA-QL strict compliance: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Second-level cache: enabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Query cache: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory createCacheProvider
INFO: Cache provider: org.hibernate.cache.NoCacheProvider
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Optimize cache for minimal puts: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Structured second-level cache entries: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Echoing all SQL to stdout
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Statistics: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Deleted entity synthetic identifier rollback: disabled
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Default entity-mode: pojo
15/10/2009 14:53:25 org.hibernate.cfg.SettingsFactory buildSettings
INFO: Named query checking : enabled
15/10/2009 14:53:25 org.hibernate.impl.SessionFactoryImpl &lt;init&gt;
INFO: building session factory
15/10/2009 14:53:26 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: Running hbm2ddl schema update
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: fetching database metadata
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: updating schema
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.BUDGET
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [extension, client_id, value, cep, justifymessage, orderid, status, quantityparcel, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fkaddaaf455c670a6b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2828, sys_idx_2852]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.BUDGETPARCEL
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [value, pay, datevalidate, orderid, budget_id, paynumber, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk94f953ae6840a02b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2854, sys_idx_2830]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.CITY
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [state_id, description, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk2e996b8fe9d569]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [city_index_01, sys_idx_2856, sys_idx_2832]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.CLIENT
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [state_id, active, contact1, password, residentialnumber, cpfcnpj, country_id, residentialaddress, city_id, status, id, residencialcep, rule, contact2, email, name]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fkaf12f3cbb7e62389, fkaf12f3cb8fe9d569, fkaf12f3cbf71696ab]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2862, sys_idx_2858, client_index_01, sys_idx_2860, sys_idx_sys_ct_2834_2837, sys_idx_2835]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.COUNTRY
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [abbreviation, description, ddi, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: []
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [country_index_01, sys_idx_2838]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCT
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [extension, value, producttype_id, supplier_id, linkexternal, description, status, name, idexternal, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fked8dccefb0b8b8ca, fked8dccef3d86bb49]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2842, sys_idx_2864, sys_idx_2866]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTCOLOR
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [code, client_id, customcolor, name, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk3aec2fb45c670a6b]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2868, sys_idx_2844]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTCOLORVALUE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [productcolor_id, product_id, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk246b221d117e78e9, fk246b221d752c40eb]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2870, sys_idx_2872, sys_idx_2846]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.PRODUCTTYPE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [name, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: []
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [sys_idx_2848]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: table found: PUBLIC.STATE
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: columns: [country_id, abbreviation, description, id]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: foreign keys: [fk68ac491b7e62389]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.TableMetadata &lt;init&gt;
INFO: indexes: [state_index_01, sys_idx_2874, sys_idx_2850]
15/10/2009 14:53:26 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: schema update complete
15/10/2009 14:53:26 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@666a53] of Hibernate SessionFactory for HibernateTransactionManager
15/10/2009 14:53:26 org.springframework.web.context.ContextLoader initWebApplicationContext
...


Tente mandar o log no momento em que você invoca a operação que deveria gerar o rollback…

A

Esse post é antigão, mas eu estava com a mesma dúvida e achei por bem postar:

Por default, @Transactional não dá rollback em transações que lançam Checked Exceptions.
Para isso, deve ser usado o parâmetro rollbackFor:

@Transactional(rollbackFor = Exception.class)

Criado 14 de outubro de 2009
Ultima resposta 29 de ago. de 2012
Respostas 13
Participantes 5