2
此代碼有什麼問題? SQL命令沒有完成,使用show_sql,我能夠看到發出的第一個sql命令,然後它將無限期地留在那裏 - 程序不會繼續。Sql命令無法完成 - 在控制檯中掛起 - 休眠
public class PersonDao {
private Configuration configuration;
private SessionFactory sessionFactory;
private Session session;
public PersonDao() {
configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
}
public Person addPerson(Person p)
{
Transaction transaction = null;
try
{
session = sessionFactory.openSession();
transaction = session.beginTransaction();
System.out.println("Before person add");
session.save(p);
System.out.println("Person added");
transaction.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return p;
}
@SuppressWarnings("finally")
public boolean deletePerson(long personId)
{
boolean issuccessful = false;
Transaction tx = null;
try {
session = sessionFactory.openSession();
tx = session.beginTransaction();
Object persistentInstance = session.load(Person.class, personId);
if (persistentInstance != null) {
((Person)persistentInstance).getResponses().clear();
((Person)persistentInstance).getOwnedEvents().clear();
session.delete(persistentInstance);
}
session.getTransaction().commit();
} catch (Exception e) {
tx.rollback();
issuccessful = false;
e.printStackTrace();
} finally {
session.flush();
session.close();
return issuccessful;
}
}
嗨,這事因爲早在sqlplus,我正發出一些DML命令後,我並沒有發出「提交」。因此,該應用程序在eclipse/hibernate中發出SQL語句時就掛起了。 – jrd