插入数据并立即进入休眠状态时出错

时间:2019-05-16 10:27:20

标签: java hibernate

我想在mysql中插入一个新对象,并使其立即使用(在另一个函数中)。插入函数返回ok,但是当我通过ID获得它时,获取功能返回null。然后我检查db,将其插入。我确实再次得到,现在,该对象得到确定。我不明白。

插入代码

public int insert(Object obj) {
    SessionFactory factory = Configuration().configure("hibernate.cfg.xml")
            .buildSessionFactory();
    Session session = factory.openSession();
    try {
        session.beginTransaction();
        session.save(obj);
        session.getTransaction().commit();
        session.close();
        factory.close();
        return ErrorCode.OK.code;
    } catch (Exception e) {
        session.close();
        factory.close();
        e.printStackTrace();
        return ErrorCode.Not_OK.code;
    }
}

获取代码

public <T> T get(Class<T> clazz, Serializable id) {
    SessionFactory factory = Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
    Session session = factory.openSession();
    Transaction tx = null;
    T t = null;
    try {
        tx = session.beginTransaction();
        t = (T) session.get(clazz, id);
    } catch (Exception e) {
        if (tx != null) {
            tx.rollback();
        }
    }
    session.close();
            factory.close();
    return t;
}

0 个答案:

没有答案