发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?



用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

用Myeclipse自己生成了一个UserinfoDao的类
现在的问题是,我调用DAO的save()运行代码不会报错,而且用DAO的findAll()方法,能够查的到刚刚插进来的数据,每插一次数据库的ID也会自增.但是数据库里面的就是没数据

下面是我的方法
		Userinfo userinfo = new Userinfo();
		UserinfoDAO dao = new UserinfoDAO();
		userinfo.setUsername(loginForm.getRyxm());
		userinfo.setPasswd(loginForm.getDlmm());
		dao.save(userinfo);




save的方法内容:
	public void save(Userinfo transientInstance) {
		log.debug("saving Userinfo instance");
		try {
			getSession().save(transientInstance);
			log.debug("save successful");
		} catch (RuntimeException re) {
			log.error("save failed", re);
			throw re;
		}
	}


这是Userinfo.hbm.xml
<hibernate-mapping>
    <class name="com.ahead.hibernate.Userinfo" table="userinfo" schema="dbo" catalog="ctdatabase">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="30" />
        </property>
        <property name="passwd" type="java.lang.String">
            <column name="passwd" length="30" />
        </property>
    </class>
</hibernate-mapping>



编辑 回复 快速回复 TOP

Re:用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

没进行事务提交
Transaction tran=getSession().beginTransaction();
getSession().save(transientInstance);
tran.commit();
编辑 回复 快速回复 TOP

Re:用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

呵呵,如果你能查到刚才插入的数据,但数据库里没有,肯定是没有commit 啦!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

2个解决方法
1在hibernate.xml配置填加如下
<property name="connection.autocommit">true</property>但不建议这样使用
2:在spring配置事物管理!
编辑 回复 快速回复 TOP

Re:用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

上面讲了好多,都是有关事务的!
其实如果不用事务也可以,只是没有办法保证完整性!
好像有个
session.flush
session.close
这两个都可以促使数据保存进去!
编辑 回复 快速回复 TOP

Re:用Myeclipse+Hibernate自己生成的DAO怎么存不了数据?

答案都被你们讲去了哈哈
编辑 回复 快速回复 TOP
发新话题