sql server数据库,主键是自增int,spring管理hibernate
spring配置文件
- XML code
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"> </property> <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433"> </property> <property name="username" value="sa"></property> <property name="password" value="sa"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect </prop> </props> </property> <property name="mappingResources"> <list> <value>cn/tpexam/model/Tpexamtmp.hbm.xml</value> </property> </bean>
id主键生成器是native
代码继承了HibernateDaoSupport
出错的地方这样写的:
- Java code
try { this.getHibernateTemplate().deleteAll(list); return true; } catch (RuntimeException e) { logger.error("deleteAll entity err:" , e); throw e; }
就在deleteAll处出的异常,list是通过getHibernateTemplate().find(hql);方法查到的List,在删除之前对这个表只有查询,没有保存更新插入等操作
而且这个异常似乎只有在多个页面同时访问时容易出现,跟并发有关系?
在网上找的都是update或者出现一对多的情况,删除时异常到底的什么原因呢?
------解决方案--------------------
1,检查数据库中的数据,看是否存在原来就不符合主外键关系的数据。
2,确保list集合中的数据均为持久状态。
------解决方案--------------------
报什么错误啊,你注意一下session别手动关闭了
------解决方案--------------------
仔细检查一下你的配置吧,以前我也经常出这样的问题