在网上对比了很多次 感觉没有什么问题, 但是不能插入数据,
只发出了 Hibernate: select hibernate_sequence.nextval from dual 语句 没有insert(若是手动管理事务 在save之前写beginTranscaction 后面写commit 就有数据 所以我觉得应该是事务管理上的错误)
不知道哪里错了啊, 配置文件看了很多遍application.xml-----------------------------------------------------------------------------------------------<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="save*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut
expression="execution(public void dao.impl.*.*(..))" id="exp1" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="exp1" />
</aop:config>
<!--事务管理配置结束 -->
<bean id="buildingDAO" class="dao.impl.TbBuildingDAOImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="BuildingAction" class="actions.BuildingAction">
</bean></beans>
-----------------------------------------------------------------------------------------------实体类 TbBuilding.hbm.xml<hibernate-mapping>
<class name="pojos.TbBuilding" table="tb_building">
<id name="buildid">
<generator class="native" />
</id>
<property name="buildname" length="20" not-null="true" />
<property name="startTime" />
<property name="endTime" />
<property name="bugMsg" />
<property name="buildArea" />
</class>
</hibernate-mapping>-----------------------------------------------------------------------------------------------------
最后是用于测试的方法:public void testAdd() {
ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext(
"applicationContext.xml");
TbBuildingDAO dao = (TbBuildingDAO) c.getBean("buildingDAO");
TbBuilding bud=new TbBuilding();
bud.setBuildname("ss");
dao.add(bud);
}--------------------------------------------------------------------------------
生成的表create table tb_building (buildid number(10,0) not null, buildname varchar2(20 char) not null, startTime timestamp, endTime timestamp, bugMsg varchar2(255 char), buildArea float, primary key (buildid))
create sequence hibernate_sequence
解决方案 »
- apache + tomcat 负载均衡 并发问题 求解!
- 请java高手帮忙 刚学习 很多东西不懂
- Struts1报错,no type for /user/login
- jquery+struts2+spring框架搭建问题,大侠们帮忙看看
- [超级简单]struts2里,jsp一个参数传递给另一JSP怎么写了
- 单表one to one 问题
- hibernate 可以根据 org.hibernate.criterion.Criterion 获取propertyName 吗?
- JAVA数组问题
- 【内存泄露】循环多次创建ResultSet,Connection后,如何全部关闭疑问???
- 多线程锁的执行顺序问题
- java菜鸟对于JFrame小疑问
- 关于struts2的问题,狂抓了,高手们帮帮忙
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <context:annotation-config />
<context:component-scan base-package="com.bluesky" /> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />
</bean> <!-- 定义事务管理器(声明式的事务) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="interceptorPointCuts"
expression="execution(* com.bluesky.spring.dao.*.*(..))" />
<aop:advisor advice-ref="txAdvice"
pointcut-ref="interceptorPointCuts" />
</aop:config>
</beans>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource">
<ref bean="dataSource" />
</property> //其他相关配置
</bean>
XML code
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource">
……可是我的数据源配置都在hibernate.cfg.xml 中啊
DAO接口在这里
public interface TbStuDAO {
public static final String STUNAME = "stuname";
public abstract void save(TbStu transientInstance);}会和接口有关系?
return sf.getCurrentSession();
} 不能直接openSession