【问题标题】:how can update DB using hibernate?如何使用休眠更新数据库?
【发布时间】:2012-11-09 11:20:31
【问题描述】:

我正在开发使用 jsf 1.X 和 hibernate 的项目,这是新的。我们正在使用下面的代码来更新_

        Shift4DAO dao = Shift4DAO.getInstance();
        Session session = dao.createNewSession();
        Transaction transaction = null;
        try {
            transaction = session.beginTransaction();
            session.saveOrUpdate(shift4B);
            transaction.commit();
        } catch (final HibernateException e) {
            e.printStackTrace();
            if (transaction != null) {
                transaction.rollback();
            } 

session.saveOrUpdate(shift4B); 它是如何工作的(流程)? Shift4DAO.java

public class Shift4DAO extends BaseShift4DAO {

public Shift4DAO () {}
}

还有Shift4.java

public class Shift4 extends BaseShift4 {
private static final long serialVersionUID = 1L;


public Shift4 () {
    super();
}


public Shift4 (java.lang.Integer id) {
    super(id);
}


public Shift4 (
    java.lang.Integer id,
    org.azureworlds.dao.Employee createdBy,
    org.azureworlds.dao.Employee lastUpdatedBy,
    org.azureworlds.dao.Reservation reservation) {

    super (
        id,
        createdBy,
        lastUpdatedBy,
        reservation);
}

}

我不明白如何连接到更新以更新数据。 有没有人可以简化这个,我需要在哪里检查或如何连接到 HB? 感谢你!!!!

【问题讨论】:

  • 问题不是很清楚。您展示了可能有效的代码并询问如何做到这一点?有什么问题
  • 我正在研究这段代码,但我不明白数据如何流入这段代码,以及它如何连接到其他代码?

标签: java hibernate jakarta-ee nhibernate-mapping hibernate-mapping


【解决方案1】:

dao.createNewSession(); 创建一个休眠会话,它封装了一个数据库连接并实现了“工作单元”模式。 session.saveOrUpdate(shift4B); 告诉会话应该根据实体的状态(新的或更改的)创建(插入)或更新 shift4B

【讨论】:

  • 但是他如何找到它对应的javaBean类并去HBconfi呢?
  • 在hbm映射中有指定映射所属的类。 Hibernate 使用 shift4B.class.Fullname 来获取对应的映射,并且它所需要的都在那里定义
  • tnx,为什么我们使用 DAO 什么都不是,只有空白的构造函数?意味着当我执行 saveOrUpdate(obj) 时,它会通过 HBM 文件获取 obj 的类?
猜你喜欢
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-11
  • 2016-10-28
相关资源
最近更新 更多