`
maoxy
  • 浏览: 138678 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate 中getSession().save() 保存不到数据库 解决办法

阅读更多
背景:
普通的java项目,单独添加hibernate框架,不添加其他任何框架的情况下。

分析:
没有使用事务管理模式,myEclipse的反向工程生成的dao的save方法

         public void save(Cigarette transientInstance) {
log.debug("saving Cigarette instance");
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
并不能说这个没有添加事务管理模式,只不过这么写他有的时候灵有的时侯不灵,那我们改为显示的提交事务就成了!

        public void save(Cigarette transientInstance) {
log.debug("saving Cigarette instance");
Transaction transaction= getSession().beginTransaction();
try {
getSession().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
transaction.commit();
getSession().flush();
getSession().close();

}

结论:
hibernate成功执行sava且不报错后,数据库中没有数据的原因:hibernate 必须显示的声明提交事务


JDBC默认的是自动提交
Hibernian默认的是手动提交,必须开启事务,手动提交,否则数据库中没有保存的记录:
            Transaction transaction= getSession().beginTransaction();
            getSession().save(transientInstance);
            transaction.commit();



以上总结了网上的资料,自己实践得出结论
2
0
分享到:
评论
2 楼 maoxy 2010-10-13  
yuantong 写道
但凡接触过H的人都知道啊


我刚知道
1 楼 yuantong 2010-10-10  
但凡接触过H的人都知道啊

相关推荐

    Hibernate中的query 分页.doc

    1. import org.hibernate.Query; 2. 3. query.setFirstResult(0),query.setMaxResults(4);相当于MySQL中的limit 0, 4; 4. public void testQuery() { 5. Session session = null; 6. try { 7. session = ...

    commons-beanutils-1.7.0

    at com.chinafi.hibernate.BaseDAO.getSession(BaseDAO.java:13) at com.chinafi.node.NodeAccessDAO.save(NodeAccessDAO.java:25) at com.chinafi.node.NodeAccessAction.execute(NodeAccessAction.java:47) ...

    hibernate的flush机制

    对hibernate的flush机制有兴趣可以看看

    request.getSession().doc

    request.getSession().doc

    HibernateSessionFactory.java Hibernate使用的整合的工具文件

    Session s= HibernateSessionFactory.getSession(); 就是Hibernate的工具java类

    NHibernate Demo

    5.连接是单线程的,在整个httpRequest处理过程中是公用的,缓存在HttpContext context中 see ref NHibernateHelper.getSession... 6.增加log4net演示,这是一个强大的log记录组件. 這個免費OR Mapping的工具很強大, ...

    J2EE利用Hibernate采用B/S架构网页设计

    import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; /** * Configures and provides access to Hibernate sessions, tied to the * current ...

    java 中 request.getSession(true、false、null)的区别

    主要介绍了java 中 request.getSession(true/false/null)的区别的相关资料,需要的朋友可以参考下

    request.setAttribute 语句前总显示红色感叹号解决办法 HTTP Status 500 -

    type Exception report message description The server encountered an internal error () that prevented it from fulfilling this ... javax.servlet.http.HttpServlet.service(HttpServlet.java:717)解决办法:

    数据库测试test.sql

    再存放到application作用域中 context.setAttribute("count",count2); //http://192.168.58.250:8080/myservlet2/servlet/admin/success.jsp response.sendRedirect("../admin/success.jsp"); }else{ //失败...

    数据库连接工厂 JdbcFactory

    数据库连接工厂数据库连接工厂数据库连接工厂数据库连接工厂

    基于tomcat的redis配置

    smartcard中的代码需要修改,redis放值时不能为空 //保存sysOrg中工号所属地市区县 Struts2Utils.getSession().setAttribute(Constants.JCFX_CITY, orgList.get(0).get("CITY_CODE")); Struts2Utils.getSession()....

    中小公司人事管理系统

    private static final String configfile="hibernate.cfg.xml"; private static final Configuration cfg=new Configuration(); private static SessionFactory sf=null; private static Session s=null; ...

    ODI_api_reference

    ODI API Organization of This Manual ............................................................................................................. 1 Using Substitution Methods............................

    Java数据库持久工具timon.zip

    Timon 是基于Java的数据库持久工具, 提供SQL Maps以及SQL工具采用XML定义SQL语句支持数据库与Java对象之间的映射 支持外部数据缓存,支持Ehcache,Memcached和内置同步缓存 提供SQL语句解析、格式化工具 安装方式...

    (JAVA)ATM银行系统论文内含代码

    session = HibernateSessionFactory.getSession(); tx = session.beginTransaction(); Account acc = (Account)session.get(Account.class, account.getId()); acc.setBalance(new Double(acc.getBalance()....

    基于servlet的购物车

    //保存到Session范围 request.getSession().setAttribute("shoppingCart", SC); // System.out.println("SESSION===================>"+request.getSession().getAttribute("shoppingCart")); request....

    jsp 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)

    在网上经常看到有人对request.getSession(false)提出疑问,我第一次也很迷惑,看了一下J2EE1.3 API,看一下官网是怎么解释的。

    domino访问关系性数据库例子

    session = getSession(); agentContext = session.getAgentContext(); docContext = agentContext.getDocumentContext(); Database cdb = agentContext.getCurrentDatabase(); Agent agent = ...

Global site tag (gtag.js) - Google Analytics