getHibernateTemplate().save()数据提交不到数据库 sava完以后还要flush(),接下来还要关闭session 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是因为事务没提交 或 是回滚了的结果 原因是你集成了spring 用myeclipse生产的代码 你在hibernate.xml配置文件里加上 <property name="connection.autocommit">true </property> 搞定 或者自己写dao 不用myeclipse生成代码 都行 进行事务处理就行了,若你事务都不知道的话,那你都白学了!你的错误在没有commit,楼上所的解决方法都可以,自己选择一种吧若你是为了测试的话我介绍你用org.hibernate.Transaction 进行事务处理吧参考代码如下Session session = HibernateSessionFactory.getSession();transaction = session.beginTransaction();/*中间是你执行的数据库操作*/transaction.commit(); 对,是没有提交引起的,可以直接Hibernate中的事务控制,或者使用spring中的事务控制都可以的。 输出SQL语句的时候还没有持久化呀...commit()一下就行了....如果你用的是Spring集成hibernate的DAO的话的确是可以自己提交的,hibernate自己还是要你去提交的 你debug一下看有没有生成动态代理类或者CGLIB代理类,也就是看一下你在Spring中配置的事务有没有起作用 这个 可以 你可以找段代码 看下import java.util.List;import org.hibernate.Transaction;import com.mocha.hibernate.Demo.User;import com.mocha.hibernate.Demo.UserDAO;public class HibernateTestDao { public static void main(String[] args) { UserDAO ud=new UserDAO(); Transaction tran=ud.getSession().beginTransaction(); User user=new User(); user.setName("张三"); user.setSex("男人"); user.setAge(25); ud.save(user); tran.commit(); List<User> result= ud.findAll(); for(User o:result) { System.out.println("编号:"+o.getUserId()); System.out.println("姓名:"+o.getName()); System.out.println("性别:"+o.getSex()); System.out.println("年龄:"+o.getAge()); } ud.getSession().close(); }} 我也遇到了相同的问题,结果解决方法是:原来数据库中id列是自动增加的,只要在entity中不设置id列,save()会自动把返回的序列号设为id解决方法就是把entity里的自增的列设置删除~~~~~终于解决了~~~~把方法贴上来 楼上的人分析一下,楼主多半用的是Spring的事务。但是生成了SQL,数据又被回滚了。5楼的解决方案虽然能把数据提交上去,但是就不支持事务了!如:在一个业务中,你有多个操作数据库的子业务,例如业务SuperA中有子业务suba,subb,subc.....如果是自动的话,suba操作成功 提交subb操作失败 回滚subc操作失败 回滚 而我们期待的是全部回滚。我也遇到楼主同样的问题,期待高手过来:http://topic.csdn.net/u/20090907/22/b901fd3b- 7325-434e-a9eb-8563823519ba.html 地址:http://topic.csdn.net/u/20090907/22/b901fd3b-7325-434e-a9eb-8563823519ba.html 太感謝yinyuan1987了,找了兩天終於找到正確的解決方法。 SSH2连接PostgreSQL怎么也连不上 关于velocity模板的一个问题 java打包zip文件问题 hibernate的Session接口方法 struts 下数据源的配置问题 Spring构造方法注入时,注入一种方法时正常注入多种时报错,求助 什么情况下会导致weblogic或tomcat运行一段时间后自动关闭 请教高手——如何用struts实现分页显示 在哪里可以下载J2EE SDK? java如何实现ELO天梯匹配规则 Struts2中的ognl.OgnlException问题 struts2 奇怪的问题 ? 不知道大家碰到过否? 求助!
原因是你集成了spring 用myeclipse生产的代码 你在hibernate.xml配置文件里加上
<property name="connection.autocommit">true </property> 搞定 或者自己写dao 不用myeclipse生成代码 都行
若你是为了测试的话我介绍你用org.hibernate.Transaction 进行事务处理吧参考代码如下
Session session = HibernateSessionFactory.getSession();
transaction = session.beginTransaction();
/*
中间是你执行的数据库操作
*/
transaction.commit();
import com.mocha.hibernate.Demo.UserDAO;public class HibernateTestDao {
public static void main(String[] args)
{
UserDAO ud=new UserDAO();
Transaction tran=ud.getSession().beginTransaction();
User user=new User();
user.setName("张三");
user.setSex("男人");
user.setAge(25);
ud.save(user);
tran.commit();
List<User> result= ud.findAll();
for(User o:result)
{
System.out.println("编号:"+o.getUserId());
System.out.println("姓名:"+o.getName());
System.out.println("性别:"+o.getSex());
System.out.println("年龄:"+o.getAge());
}
ud.getSession().close();
}
}
原来数据库中id列是自动增加的,只要在entity中不设置id列,save()会自动把返回的序列号设为id
解决方法就是把entity里的自增的列设置删除~~~
~~终于解决了~~~~
把方法贴上来
5楼的解决方案虽然能把数据提交上去,但是就不支持事务了!如:
在一个业务中,你有多个操作数据库的子业务,
例如
业务SuperA中有子业务suba,subb,subc.....
如果是自动的话,
suba操作成功 提交
subb操作失败 回滚
subc操作失败 回滚 而我们期待的是全部回滚。我也遇到楼主同样的问题,期待高手过来:
http://topic.csdn.net/u/20090907/22/b901fd3b- 7325-434e-a9eb-8563823519ba.html