getHibernateTemplate().save 不能写入数据
spring配置文件中的内容如下:
<!-- 配置sessionFactory -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation"
			value="hibernate.cfg.xml">
		</property>
	</bean>
	<!-- 配置DAO -->
	<bean id="userDAO"
		class="edu.suse.hibernate.dao.implement.UserDAOImpl">
		<property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
	</bean>	
	<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory"/>
		</property>
	</bean>
	<!-- 配置DAO代理类 -->
	<bean id="UserDAOProxy"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager">
			<ref local="transactionManager"/>
		</property>
		<property name="target">
			<ref local="userDAO"/>
		</property>
		<property name="proxyTargetClass" value="true"/><!-- 使用CGlib -->
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="delete*">PROPAGATION_REQUIRED</prop>
				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>
UserDAOImpl类中有如下代码:
     public void addUser(User user) {
         try {
             getHibernateTemplate().save(user);
         } catch (
RuntimeException re) {
             throw re;
         }
     }
     public User findById(Integer id) {
         try {
             User user = (User) getHibernateTemplate()
                     .get("hibernate.po.User", id);
             return user;
         } catch (RuntimeException re) {
             throw re;
         }
     }
我在主程序中调用了addUser(user),按理该向数据库中写入user中属性对应的数据,但是打开Mysql数据库后,发现数据没有写入,而且控制台也没有报错。
如果我在主程序中调用findById,又能得到数据。也就是说:只能读数据,但不能写数据,而且写数据也不报错。
请问大家这是怎么回事?
HibernateTemplate的sava,get等方法应该不用我们进行事务控制吧.
------解决方案--------------------可以叫spring来管理事务  
你控制台SQL语句有打印出来不?
看是否有insert语句,我再继续帮你找原因
------解决方案--------------------1 save 需要事务控制一下
2 我怀疑你save的操作是更新。当然不会出现异常。
 你查一下你的代码吧。比如
Java code
    public void addUser(User user) { 
        try { 
 System.out.println(user.getId()); // 我怀疑这个add其实是update
            getHibernateTemplate().save(user); 
        } catch (RuntimeException re) { 
            throw re; 
        } 
    }
------解决方案--------------------
没有插入数据到数据库,但是又能通过get方法得到数据。说明你的操作只是在hibernate的缓存中进行,并没有实际操作数据库。
你在你的save方法后,手动执行一下getHibernateTemplate().flush()方法吧。
------解决方案--------------------
我今天也遇到这个问题了  
是因为事务没提交 或 是回滚了的结果
原因是你集成了spring  用myeclipse生产的代码  
你在hibernate.xml配置文件里加上
<property name="connection.autocommit">true</property> 变搞定