spring+hibernate事务问题(急) showsql为true看看sql语句出来了没?如果出来了,说明没有commit,autocommit是true还是?false? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="properties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hbm2ddl.auto">create</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.order_updates">true</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.use_sql_comments">true</prop> <prop key="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider </prop> <prop key="hibernate.cache.use_minimal_puts">true</prop> <prop key="hibernate.cache.use_structured_entries"> true </prop> </props> </property> </bean> <!-- SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="DataSource" /> </property> <property name="hibernateProperties"> <ref bean="hibernateProperties" /> </property> <property name="mappingResources"> <list> <value> com/syswin/crm/base/dao/TCustomerReqTask.hbm.xml </value> </value> </list> </property> </bean>这是sessionfactory的配置,sql没有输出!谢谢 prop key="hbm2ddl.auto">create </prop> 先把这句改成none试下 好像是一对多关系除了问题:org.springframework.dao.InvalidDataAccessApiUsageException: com.syswin.crm.base.dao.TCity; nested exception is org.hibernate.TransientObjectException: com.syswin.crm.base.dao.TCityCaused by: org.hibernate.TransientObjectException: com.syswin.crm.base.dao.TCity at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216) at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108) at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:220) at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476) at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803) at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467) at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190) at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113) at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195) at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:126) at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48) at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:821) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:637) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:624) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:307) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) at com.syswin.crm.common.log.LogInterceptor.invoke(LogInterceptor.java:12) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:616) at com.syswin.crm.base.service.BlockService$$EnhancerByCGLIB$$592373db.deleteBlock(<generated>) <class name="com.syswin.crm.base.dao.TBlock" table="T_BLOCK" schema="CRM"> <id name="blockId" type="java.lang.String"> <column name="BLOCK_ID" length="20" /> </id> <many-to-one name="TCity" class="com.syswin.crm.base.dao.TCity" fetch="join"> <column name="CITY_ID" length="20" /> </many-to-one> <property name="blockName" type="java.lang.String"> <column name="BLOCK_NAME" length="30" /> </property> <property name="blockNameSpell" type="java.lang.String"> <column name="BLOCK_NAME_SPELL" length="30" /> </property> <property name="createDate" type="java.lang.String"> <column name="CREATE_DATE" length="8" /> </property> <set name="TProperties" inverse="true"> <key> <column name="T_B_BLOCK_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TProperty" /> </set> <set name="TEstates" inverse="true"> <key> <column name="T_B_BLOCK_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TEstate" /> </set> <set name="TAreas" inverse="true"> <key> <column name="BLOCK_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TArea" /> </set> </class> <class name="com.syswin.crm.base.dao.TCity" table="T_CITY" schema="CRM"> <id name="cityId" type="java.lang.String"> <column name="CITY_ID" length="20" /> <generator class="native" /> </id> <property name="cityName" type="java.lang.String"> <column name="CITY_NAME" length="30" /> </property> <property name="cityNameSpell" type="java.lang.String"> <column name="CITY_NAME_SPELL" length="30" /> </property> <property name="createDate" type="java.lang.String"> <column name="CREATE_DATE" length="8" /> </property> <set name="TDistricts" inverse="true" > <key> <column name="CITY_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TDistrict" /> </set> <set name="TBlocks" > <key> <column name="CITY_ID" length="20" /> </key> <one-to-many class="com.syswin.crm.base.dao.TBlock" /> </set> <set name="TEstates" inverse="true"> <key> <column name="T_C_CITY_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TEstate" /> </set> <set name="TProperties" inverse="true"> <key> <column name="T_C_CITY_ID" length="20" not-null="true" /> </key> <one-to-many class="com.syswin.crm.base.dao.TProperty" /> </set> </class>是不时配置有问题啊,谢谢block和city是多队一得关系,在删除多的时候出现的问题 OpenSessionInViewFilter在查询完之后不提交事务? 关于easyui 无限节点tree的JSON生成 String s = "12+45+33+5+89"; appfuse2.0 构建 struts2.0 错误 HQL 右连接问题 有人试着写出来让小弟学学吗 关于j2sdk1.4.2_05无法显示汉语怎么办! 有不有分布式EJB的例子? 用VisualAgeForJava开发时怎样往java.io,java.utiL等包里增加新的类? 自定义报表? hibernate 多表查询 poi读excel出现了问题
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hbm2ddl.auto">create</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.order_updates">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_minimal_puts">true</prop>
<prop key="hibernate.cache.use_structured_entries">
true
</prop>
</props>
</property>
</bean>
<!-- SessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="DataSource" />
</property>
<property name="hibernateProperties">
<ref bean="hibernateProperties" />
</property>
<property name="mappingResources">
<list>
<value>
com/syswin/crm/base/dao/TCustomerReqTask.hbm.xml
</value>
</value>
</list>
</property>
</bean>这是sessionfactory的配置,sql没有输出!谢谢
org.springframework.dao.InvalidDataAccessApiUsageException: com.syswin.crm.base.dao.TCity; nested exception is org.hibernate.TransientObjectException: com.syswin.crm.base.dao.TCity
Caused by: org.hibernate.TransientObjectException: com.syswin.crm.base.dao.TCity
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:216)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:108)
at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:220)
at org.hibernate.type.TypeFactory.findDirty(TypeFactory.java:476)
at org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:2803)
at org.hibernate.event.def.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:467)
at org.hibernate.event.def.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:195)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:126)
at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:821)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:637)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:624)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:307)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at com.syswin.crm.common.log.LogInterceptor.invoke(LogInterceptor.java:12)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:616)
at com.syswin.crm.base.service.BlockService$$EnhancerByCGLIB$$592373db.deleteBlock(<generated>) <class name="com.syswin.crm.base.dao.TBlock" table="T_BLOCK" schema="CRM">
<id name="blockId" type="java.lang.String">
<column name="BLOCK_ID" length="20" />
</id>
<many-to-one name="TCity" class="com.syswin.crm.base.dao.TCity" fetch="join">
<column name="CITY_ID" length="20" />
</many-to-one>
<property name="blockName" type="java.lang.String">
<column name="BLOCK_NAME" length="30" />
</property>
<property name="blockNameSpell" type="java.lang.String">
<column name="BLOCK_NAME_SPELL" length="30" />
</property>
<property name="createDate" type="java.lang.String">
<column name="CREATE_DATE" length="8" />
</property>
<set name="TProperties" inverse="true">
<key>
<column name="T_B_BLOCK_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TProperty" />
</set>
<set name="TEstates" inverse="true">
<key>
<column name="T_B_BLOCK_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TEstate" />
</set>
<set name="TAreas" inverse="true">
<key>
<column name="BLOCK_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TArea" />
</set>
</class> <class name="com.syswin.crm.base.dao.TCity" table="T_CITY" schema="CRM">
<id name="cityId" type="java.lang.String">
<column name="CITY_ID" length="20" />
<generator class="native" />
</id>
<property name="cityName" type="java.lang.String">
<column name="CITY_NAME" length="30" />
</property>
<property name="cityNameSpell" type="java.lang.String">
<column name="CITY_NAME_SPELL" length="30" />
</property>
<property name="createDate" type="java.lang.String">
<column name="CREATE_DATE" length="8" />
</property>
<set name="TDistricts" inverse="true" >
<key>
<column name="CITY_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TDistrict" />
</set>
<set name="TBlocks" >
<key>
<column name="CITY_ID" length="20" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TBlock" />
</set>
<set name="TEstates" inverse="true">
<key>
<column name="T_C_CITY_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TEstate" />
</set>
<set name="TProperties" inverse="true">
<key>
<column name="T_C_CITY_ID" length="20" not-null="true" />
</key>
<one-to-many class="com.syswin.crm.base.dao.TProperty" />
</set>
</class>
是不时配置有问题啊,谢谢
block和city是多队一得关系,在删除多的时候出现的问题