Hinernate mostra insert into mas nõ persiste
O hibernate mostra que deu o insert into, mas não salva nada no banco alguém sabe pq?
não dar erro nem nada
ibernate: insert into dbo.USUARIO (BLOQUEADO, EMAIL, LOGIN, NOME, PASSWORD, STATUS, TIPO_USUARIO) values (?, ?, ?, ?, ?, ?, ?) 2012-05-07 14:18:19,420 TRACE [org.hibernate.type.BooleanType] binding false to parameter: 1 2012-05-07 14:18:19,421 TRACE [org.hibernate.type.StringType] binding www@gmail.com to parameter: 2 2012-05-07 14:18:19,421 TRACE [org.hibernate.type.StringType] binding cits\admineee to parameter: 3 2012-05-07 14:18:19,421 TRACE [org.hibernate.type.StringType] binding ewewe to parameter: 4 2012-05-07 14:18:19,421 TRACE [org.hibernate.type.StringType] binding 7be619cef976ca5ce3caff2eb072a7f7 to parameter: 5 2012-05-07 14:18:19,427 DEBUG [org.hibernate.type.EnumType] Binding ATIVO to parameter: 6 2012-05-07 14:18:19,428 DEBUG [org.hibernate.type.EnumType] Binding COMPRADOR to parameter: 7
não dar erro nem nada
Wisley Souza
Curtidas 0
Respostas
Davi Costa
07/05/2012
tá usando spring com hibernate né?
se sim posta aqui sua configuração (.xml)
att Davi
se sim posta aqui sua configuração (.xml)
att Davi
GOSTEI 0
Wisley Souza
07/05/2012
<beans xmlns=http://www.springframework.org/schema/beans
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xmlns:aop=http://www.springframework.org/schema/aop
xmlns:context=http://www.springframework.org/schema/context
xmlns:tx=http://www.springframework.org/schema/tx
xmlns:util=http://www.springframework.org/schema/util
xmlns:jee=http://www.springframework.org/schema/jee
xsi:schemaLocation=http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd>
<tx:annotation-driven transaction-manager=txManager />
<context:annotation-config />
<context:component-scan base-package=br.com.frisbee, br.com.frisbee.seguranca.presentation.mbean />
<aop:aspectj-autoproxy/>
<!-- Gerenciador de transacoes baseado em JPA -->
<bean id=txManager
class=org.springframework.orm.jpa.JpaTransactionManager>
<property name=entityManagerFactory ref=entityManagerFactory />
</bean>
<!-- banco desenv -->
<bean id=myDataSource class=com.mchange.v2.c3p0.ComboPooledDataSource destroy-method=close>
<property name=driverClass value=com.microsoft.sqlserver.jdbc.SQLServerDriver />
<property name=jdbcUrl value=jdbc:sqlserver://192.168.0.109:1433;databaseName=frisbee />
<property name=user value=perlos />
<property name=password value=perlos />
<property name=initialPoolSize value=20 />
<property name=minPoolSize value=20 />
<property name=maxPoolSize value=20 />
<property name=idleConnectionTestPeriod value=500 />
<property name=acquireIncrement value=1 />
<property name=maxStatements value=1000 />
<property name=numHelperThreads value=1 />
<property name=maxIdleTime value=5></property>
</bean>
<!-- Fabrica de entity managers -->
<bean id=entityManagerFactory class=org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean>
<property name=dataSource ref=myDataSource />
<property name=persistenceUnitName value=frisbee />
<property name=jpaVendorAdapter>
<bean class=org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter>
<property name=showSql value=true />
<property name=generateDdl value=true />
<property name=databasePlatform value=org.hibernate.dialect.SQLServerDialect />
</bean>
</property>
</bean>
<bean id=myAspect class=br.com.frisbee.geral.business.BusinessInterceptor/>
</beans>
persistence:
<?xml version=1.0 encoding=UTF-8?> <persistence version=1.0 xmlns=http://java.sun.com/xml/ns/persistence xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd> <persistence-unit name=frisbee transaction-type=RESOURCE_LOCAL> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>br.com.frisbee.seguranca.business.entity.Usuario</class> <class>br.com.frisbee.seguranca.business.entity.Perfil</class> <class>br.com.frisbee.seguranca.business.entity.Funcionalidade</class> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name=hibernate.dialect value=org.hibernate.dialect.SQLServerDialect /> <property name=hibernate.show_sql value=true /> <property name=hibernate.format_sql value=false /> <property name=hibernate.max_fetch_depth value=2 /> <property name=hibernate.connection.pool_size value=30 /> <property name=hibernate.default_schema value=dbo /> <property name=hibernate.c3p0.timeout value=60 /> <property name=hibernate.connection.release_mode value=after_statement /> </properties> </persistence-unit> </persistence>
GOSTEI 0
Lucas Costa
07/05/2012
Cara, voce esta inserindo no banco certo? pode ser que tenha outros bancos por aí e esteja trabalhando com o banco errado (enganado). Não vi no seu persistence a propriedade hbm2ddll.auto, insira esta propriedade com valor validate .
att
Lucas.
att
Lucas.
GOSTEI 0
Wisley Souza
07/05/2012
eu tirei de proposito, pra fazer um teste, depois coloquei de novo,...
está no banco certo sim.
está no banco certo sim.
GOSTEI 0
Davi Costa
07/05/2012
add no arquivo de configuração do spring:
<tx:advice id=txAdvice>
<!-- configuracoes das transacoes -->
<tx:attributes>
<!-- todos os metodos que comecam com select e find sao read-only -->
<tx:method name=select*
propagation=SUPPORTS read-only=true />
<tx:method name=find*
propagation=SUPPORTS read-only=true/>
<!-- Os outros metodos possuem requerem uma transacao -->
<tx:method name=*
propagation=REQUIRED />
</tx:attributes>
</tx:advice>
<aop:config>
<!-- Todos as instancias das classes que fazem parte do pacote service, independente da
hierarquia, terao os metodos gerenciados -->
<aop:pointcut id=serviceMethods
expression=execution(* br.com.app.teste..*.*(..)) />
<aop:advisor advice-ref=txAdvice
pointcut-ref=serviceMethods />
</aop:config>
muita atenção em dois pontos:
na minha app br.com.app.service..*.*(..) service é o pacote que possui os métodos que entram em conexão com o banco via hibernate. Esses ..*.*(..) são necessários é assim mesmo
Nesse trecho:
<!-- todos os metodos que comecam com select e find sao read-only -->
<tx:method name=select*
propagation=SUPPORTS read-only=true />
<tx:method name=find*
propagation=SUPPORTS read-only=true/>
<!-- Os outros metodos possuem requerem uma transacao -->
<tx:method name=*
propagation=REQUIRED />
está assim pq meus métodos segue um padrão (DAO) métodos que começão com find e select são read-only pois são só de pesquisa, os outros onde entrariam inserts e updates são transacionais e comitaram as transações ao banco
att Davi
<tx:advice id=txAdvice>
<!-- configuracoes das transacoes -->
<tx:attributes>
<!-- todos os metodos que comecam com select e find sao read-only -->
<tx:method name=select*
propagation=SUPPORTS read-only=true />
<tx:method name=find*
propagation=SUPPORTS read-only=true/>
<!-- Os outros metodos possuem requerem uma transacao -->
<tx:method name=*
propagation=REQUIRED />
</tx:attributes>
</tx:advice>
<aop:config>
<!-- Todos as instancias das classes que fazem parte do pacote service, independente da
hierarquia, terao os metodos gerenciados -->
<aop:pointcut id=serviceMethods
expression=execution(* br.com.app.teste..*.*(..)) />
<aop:advisor advice-ref=txAdvice
pointcut-ref=serviceMethods />
</aop:config>
muita atenção em dois pontos:
na minha app br.com.app.service..*.*(..) service é o pacote que possui os métodos que entram em conexão com o banco via hibernate. Esses ..*.*(..) são necessários é assim mesmo
Nesse trecho:
<!-- todos os metodos que comecam com select e find sao read-only -->
<tx:method name=select*
propagation=SUPPORTS read-only=true />
<tx:method name=find*
propagation=SUPPORTS read-only=true/>
<!-- Os outros metodos possuem requerem uma transacao -->
<tx:method name=*
propagation=REQUIRED />
está assim pq meus métodos segue um padrão (DAO) métodos que começão com find e select são read-only pois são só de pesquisa, os outros onde entrariam inserts e updates são transacionais e comitaram as transações ao banco
att Davi
GOSTEI 0