【问题标题】:setting savepoints on hibernate session在休眠会话上设置保存点
【发布时间】:2012-12-06 06:25:15
【问题描述】:

我是 Hibernate 的新手。我的项目需要以下场景。

例如我正在插入20条TestHBDemo类的记录数据。

hbsession = HibernateUtil.getCurrentSession();
tx = hbsession.beginTransaction();
for(int index = 0; index < 20; ++index){
    TestHBDemo obj = new TestHBDemo();
    //setting data

    hbsession.save(obj);
}
tx.commit();

如何通过省略中间记录来仅插入 1 - 10 和 15 - 20 条记录

hbsession = HibernateUtil.getCurrentSession();
tx = hbsession.beginTransaction();
for(int index = 0; index < 20; ++index){
    TestHBDemo obj = new TestHBDemo();
    //setting data

    hbsession.save(obj);

    if(somecondition)
    // setting save points
}
//omitting unnecessary insertions
tx.commit();

请提供我最好在休眠中而不是使用 javax.sql 的解决方案。

谢谢.....

【问题讨论】:

    标签: java hibernate session savepoints


    【解决方案1】:

    我通过以下代码实现了它:

    hbsession = HibernateUtil.getCurrentSession();
        tx = hbsession.beginTransaction();
        for(int index = 0; index < 20; ++index){
    
        TestHBDemo obj = new TestHBDemo();
        //setting data
    
            hbsession.save(d5campaingObj);
            if(index == 9){
                hbsession.flush();
                hbsession.clear();
            }
            if(index == 14){
                hbsession.clear();               
            }
        }
    tx.commit();
    

    但我正在等待专家提供更好的方法。 谢谢....

    【讨论】:

    • 我不明白这与休眠有什么关系。这只是循环中的条件语句?您想了解 hibernate 中什么样的功能可以替代它?
    • 我只添加了部分答案。从上面看,flush() 最多可以保存 10 条记录,并省略了接下来的 5 条记录。我是通过使用 fush() 做到的。但是,我无法将记录保存为 JDBC 中的保存点。因为,在刷新之后,我无法删除那些特定的刷新记录并在提交之前插入新记录......如果不清楚,请询问清楚......
    【解决方案2】:
    hbsession = HibernateUtil.getCurrentSession();
    tx = hbsession.beginTransaction();
    for(int index = 0; index < 20; ++index){
        TestHBDemo obj = new TestHBDemo();
        //setting data
        **if(index>10 && inxex<15)
            continue**;
        hbsession.save(obj);
        // setting save points
    }
    tx.commit();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2012-06-02
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多