我想在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;
}